파일 IO처리.

DevTool/Java 2009. 6. 17. 18:08

package ch19;

import java.io.*;

public class Ch1901
{
 public static void main(String[] args)
 {
  //File 클래스 : 특정화일에 대한 정보(크기,이름 등)에 대한정보를
  //얻을수 있는 메서드를 가지고있는 클래스로
  //생성자는 특정화일이나 폴더에 대한 문자열을 지정하면 됨
  //(단 화일의 내용을 고치는 것은 FIle클래스에서지원 되지 않으며
  //화일 입출력스트림을 사용해야 한다.
 
  File file = new File("D:\\study\\java\\Project\\sample\\src\\ch19\\button1.jpg");
  System.out.println("화일명 : "+file.getName());
  System.out.println("화일크기 : "+file.length());
  System.out.println("화일 유무  : "+file.exists());
  file.delete(); //실제 파일 삭제 주의
 
  file = new File("D:\\study\\java\\Project\\sample\\src\\ch21");
  String[] list = file.list();
  for(int i=0;i<list.length;i++)
  {
   System.out.println(list[i]);
  }
 }
}

Posted by 말없제이
,

package ch18;

public class Ch1802
{
 public Ch1802() throws Exception
 {
  // TODO 자동 생성된 생성자 스텁
//예외처리 상위로 넘김.
  run();
 }
 
 private void run() throws Exception
 {
  // TODO 자동 생성된 메소드 스텁
//상위 인 Ch1802로 넘김.
  int a=0/0;
 }


 public static void main(String[] args)
 {
  try
  {
   new Ch1802();
  } catch (Exception e)
  {
   // TODO 자동 생성된 catch 블록
   e.printStackTrace();
  }
 }
}

Posted by 말없제이
,

package ch18;

public class Ch1801
{
 public static void main(String[] args)
 {
  try
  {
   //예외가 발생할 수도 있는 프로그램문장을 기술
   int a=0/0;
   // 예외처리대상은 문법에러를 대상으로 하지 않는다.
   //System.out.println(b);
   
  }
  catch (Exception e)
  {
   // TODO: handle exception
   //try안의 구문을 실행했을 경우 예외가 발생할 경우
   //처리해야 하는 문장들을 기술
   System.out.println("에러가 놨슈~");
   //e.printStackTrace();
  }
  finally
  {
   //예외가 발생하는 안하든 처리해야 하는 구문을 기술
   System.out.println("종료");
  }
 
 }
}

Posted by 말없제이
,

<html>
<head>
<style type="text/css">
a:hover {background-color:blue;color:whilte}

div {background-color:beige;}
</style>
<script type="text/jscript">
function mm(n)
{
 if(n==0)
 {
  for(i=1;i<4;i++)
  {
   k="layer"+i;
   document.all[k].style.visibility='hidden';
  }
 }
 else
 {
  for(i=1;i<4;i++)
  {
   k="layer"+i;
   if(i==n)
   {
    document.all[k].style.visibility='visible';
    continue;
   }
   else
   {
    document.all[k].style.visibility='hidden';
   }
  }
 }
}
</script>
</head>
<body>
<h3>연습.. 상단메뉴</h3>
<table width="560">
<tr>
<td><a href="#" onMouseOver="mm(0)">hoem</a></td>
<td><a href="#" onMouseOver="mm(1)">개인회원</a></td>
<td><a href="#" onMouseOver="mm(2)">기업회원</a></td>
<td><a href="#" onMouseOver="mm(3)">채용정보</a></td>
</tr>
</table>
<div id=layer1 style="position:absolute;left:0px;top:100px;width:500px;height:100px;visibility:hidden;">
개인정보<br>
인<br>
정<br>

</div>
<div id=layer2 style="position:absolute;left:0px;top:100px;width:500px;height:100px;visibility:hidden;">
기업회원<br>
업<br>
회<br>

</div>
<div id=layer3 style="position:absolute;left:0px;top:100px;width:500px;height:100px;visibility:hidden;">
b<br>
i<br>
n<br>
s
</div>
</form>
</body>
</html>

Posted by 말없제이
,
<html>
<head>
</head>
<body>
<h3>Document 객체의 속성 사용하기 - 66</h3>
<ul>
<li>title : 문서의 제목
<li>location : 문서의 위치
<li>lastModified : 문서가 마지막 수정된 날짜
<li>domain : 문서가 있는 서버의 도메인 이름.
<li>bgColor : 문서의 배경색상
<li>fgColor : 문서의 글자색상
<li>linkColor : 링크가 설정된 부분의 색
<li>alinkColor : 링크가 설정된 부분을 클릭했을때 색
<li>vlinkColor : 이미 방문했던 링크부분의 색
<li>URL : 문서의 주소
</ul>
<h3>Document 객체의 문서 속성 조절하기</h3>
<ul>
<li>anchors : 문서에 사용된 책갈피들의 배열
<li>forms : 문서에 사용된 폼의 배열
<li>links : 문서에 사용된 링크들의 배열
<li>images : 문서에 사용된 그림의 배열
<li>applets : 문서에 사용된 애플릿배열
<li>embeds : 문서에 사용된 플러그인들의 배열
<li>layers : 문서에 사용된 레이어들의 배열
<li>cookies : 클라이언트의 정보저장 배열
</ul>
<form name="form1">
<img src="../html/image/poster1.jpg">
<a herf="#"><img src="../html/image/poster2.jpg"></a>
<img src="../html/image/poster3.jpg">
<script type="text/jscript">
alert("현재 갯수 : "+ document.images.length+"소스파일 : "+document.images[0].src);
</script>
</form>
<br>
<h3>history 객체</h3>
<ul>
<li>속성
</ul>
<li>length : 히스토리 목록에 저장된 url의 갯수
<li>메소드
<ul>
<li>back() : 이전 페이지로 이동
<li>forward() : 다음 페이지로 이동
<li>go(숫자) : 지정된 숫자만큼 이동, ex)go(-1)
</ul>
</ul>
<br>
<h3>Location 객체</h3>
<ul> 웹 문서의 주소에 대한 정보를 제공
<li>속성
<li>href : url
<li>protocol : 프로토콜 -> http
<li>hostname : 호스트 -> www.kbs.co.kr
<li>port : 포트번호 -> 80,8080
<li>host : 호스트:포트번호 -> www.kbs.co.kr:80
<li>pathname : 경로
<li>hash : 문서의 책갈피
</ul>
<li>메소드
<ul>
<li>reload() : 문서를 다시 불러옴.
<li>replace() : 문서를 지정 웹사이트로 대체 ex)location.replace("http://www.imbc.co.kr");
</ul>
</ul>
<input type="button" value="회원비정보" onClick="location.href='061202.htm'">
<br>
<h3>Navigator 객체</h3>
<ul> 웹브라우저에 대한 정보 제공
<li>속성
<ul>
<li>appCodeName : 브라우저 코드명
<li>appName : 브라우저 이름
<li>appVersion : 브라우저 버전
<li>platform : 현재 사용하는 시스템
<li>userAgent : 웹브라우저 서버접속시 브라우저 정보,버전,코드명 등 정보
<li>plugins : 플러그인 정보
</ul>
<li>메소드
<ul>
<li>javEnabled() : 자바 사용이 가능한 여부
</ul>
</ul>
<form name="form3">
<textarea name="textarea1"></textarea>
<script type="text/jscript">
document.form3.textarea1.value = navigator.appCodeName;
document.form3.textarea1.value += "\r\n"+navigator.platform;
</script>
</form>
</body>
</html>
Posted by 말없제이
,
<html>
<head>
</head>
<body>
<h3>window 객체의 메소드 open() close()</h3>
<ul>
<pre>
[open 메소드 사용]
open("새창 보여줄 문서","새창이름","새창속성");
ex) window.open("abc.html","target1","width='400',height='200',menubar='no'");
>> ex) Ex 7에서는 "width='400',height='200',menubar='no'이부분을 width=400,height=200 .. '표시 없이해야 나옴

[close 메소드 사용]
close();
ex) window.close(); / self.close();
</pre>
<ul>새창의 속성
<li>toolbar : 툴바출력여부(yes,no)
<li>location : 주소 표시줄 출력여부(yes,no)
<li>directories : 연결줄 출력여부(yes,no)
<li>status : 상태표시줄 출력여부(yes,no)
<li>menubar : 메뉴표시줄 출력여부(yes,no)
<li>scrollbars : 스크롤바 출력여부(yes,no)
<li>resizable : 창의 크기 조절 여부(yes,no)
<li>copyhistory : 히스토리저장여부(yes,no)
<li>width/height : 창의 넓이/높이
<li>left/top : 창 출력시 왼쪽/위에서 떨어진 위치
</ul>
</ul>
<br>
<script type="text/jscript">
function opn()
{
 window.open("061202a.htm","target1","width='400',height='200',menubar='no'")
}
</script>
<form name="form1">
<input type="text" name="mon1">
<input type="button" value="누르면 창뜹니다" onClick="opn()">
</form>
</body>
</html>




****** 061202a.htm ******

<html>
<head>
</head>
<body>
061202.htm ..에서 열면 열리는 페이지<br>
여기서 다시 부모창으로 갈때는 opener.form1... 호출가능.<br>
<form name="form2">
 <input type="text" name="son1">
 <input type="button" value="부모로접속" onClick="opener.document.form1.mon1.value = document.form2.son1.value;">
</form>
</body>
</html>
Posted by 말없제이
,
<html>
<head>
</head>
<body OnLoad="window.defaultStatus='금주의 window객체'">
<h3>Checkbox 객체</h3>
<h3>Radio 객체</h3>
<h3>window 객체</h3>
<ul>
window.속성/메소드()<br>
window : Window 객체로 이미 선언 및 생성되있는 객체 변수<br>
<li>속성
<ul>
<li>status : 웹브라우저의 상태표시줄에 표시되는 내용
<li>defaultStatus : 웹브라우저의 상태표수줄에 초기화될 내용
<li>classes : 문서안에 정의된 모든 class정보
<li>frame : 윈도우에 사용된 frame정보 배열
<li>self : 현재 열려있는 윈도우
<li>parent : 계층구조가 생길 때 상위 윈도우
<li>top : 계층구조가 생길때 최상위 윈도우
</ul>
</ul>
<img src="../html/image/map.png" onMouseOver="window.status='금주의 그림'">
</body>
</html>
Posted by 말없제이
,

package ch17;

import java.awt.BorderLayout;
import javax.swing.JPanel;
import javax.swing.JFrame;

public class Ch1701 extends JFrame {

 private static final long serialVersionUID = 1L;

 private Ch1701Panel jContentPane = null;

 /**
  * This is the default constructor
  */
 public Ch1701() {
  super();
  initialize();
 }

 /**
  * This method initializes this
  *
  * @return void
  */
 private void initialize() {
  this.setSize(300, 200);
  this.setContentPane(getJContentPane());
  this.setTitle("JFrame");
 }

 /**
  * This method initializes jContentPane
  *
  * @return javax.swing.JPanel
  */
 private Ch1701Panel getJContentPane() {
  if (jContentPane == null) {
   jContentPane = new Ch1701Panel();
   jContentPane.setLayout(new BorderLayout());
  }
  return jContentPane;
 }

}

******** Ch1701Panel.java *****
package ch17;

import java.awt.Graphics;
import java.awt.GridBagLayout;
import java.awt.Image;
import java.awt.Toolkit;

import javax.swing.JPanel;
import javax.tools.Tool;

public class Ch1701Panel extends JPanel {

 private static final long serialVersionUID = 1L;

 //이미지를 저장할 이미지 멤버변수 선언
 private Image image;
 /**
  * This is the default constructor
  */
 public Ch1701Panel() {
  super();
  image=Toolkit.getDefaultToolkit().getImage("D:\\study\\java\\Project\\sample\\src\\ch17\\sering.jpg");
  initialize();
 }

 /**
  * This method initializes this
  *
  * @return void
  */
 private void initialize() {
  this.setSize(300, 200);
  this.setLayout(new GridBagLayout());
 }

 //swing은 애니메이션시 잔상남아서 해결하는 방법. 아래.
 @Override
 protected void paintComponent(Graphics g) {
  // TODO 자동 생성된 메소드 스텁
  super.paintComponent(g);
  g.drawImage(image, 0, 0, this);
 }
}

Posted by 말없제이
,

package ch14;

import java.awt.Graphics;

import javax.swing.JPanel;

public class Ch1402Panel extends JPanel
{
 public Ch1402Panel()
 {
  // TODO 자동 생성된 생성자 스텁
  super();
  setVisible(true);
 }
 
 @Override
 protected void paintComponent(Graphics g) {
  // TODO 자동 생성된 메소드 스텁
  //부모에 있는 코딩도 돌리고 자신도 돌린다..
  super.paintComponent(g);
  g.drawRect(50, 50, 150, 100);
 }
}


******* Ch1401_AWT.java *******
package ch14;

import java.awt.Frame;
import java.awt.Graphics;

public class Ch1401_AWT extends Frame {

 private static final long serialVersionUID = 1L;

 //오버라이드..
 @Override
 public void paint(Graphics g) {
  // TODO 자동 생성된 메소드 스텁
  super.paint(g);
  g.drawRect(50,50,50,100);
 
 }
 
 /**
  * This is the default constructor
  */
 public Ch1401_AWT() {
  super();
  initialize();
 }
 

 /**
  * This method initializes this
  *
  * @return void
  */
 private void initialize() {
  this.setSize(300, 200);
  this.setTitle("Frame");

 }

}

********* Ch1402_Swing.java ********
package ch14;

import java.awt.BorderLayout;
import java.awt.Graphics;

import javax.swing.JPanel;
import javax.swing.JFrame;

public class Ch1402_Swing extends JFrame {

 private static final long serialVersionUID = 1L;

 private Ch1402Panel jContentPane = null;

 //컴포넌트위에 강제로 덮어씀. 될수있음 swing은 paint로 override하지 않음.
 @Override
 public void paint(Graphics g) {
  // TODO 자동 생성된 메소드 스텁
  super.paint(g);
  g.drawRect(50, 50, 100, 50);
 }
 
 
 /**
  * This is the default constructor
  */
 public Ch1402_Swing() {
  super();
  initialize();
 }

 /**
  * This method initializes this
  *
  * @return void
  */
 private void initialize() {
  this.setSize(300, 200);
  this.setContentPane(getJContentPane());
  this.setTitle("JFrame");
 }

 /**
  * This method initializes jContentPane
  *
  * @return javax.swing.JPanel
  */
 private Ch1402Panel getJContentPane() {
  if (jContentPane == null) {
   jContentPane = new Ch1402Panel();
   jContentPane.setLayout(new BorderLayout());
  }
  return jContentPane;
 }

}

Posted by 말없제이
,

<html>
<head>
</head>
<body>
<h2>실습1</h2>
<xmp>
이력체크.
ID : [] =>6자리~12자리까지
패스워드 : []
패스워드확인 : [] 위두개 입력된 값이 일치
이름 : []
나이 : [] -> 20~39까지만
[전송][취소]
</xmp>
<script type="text/jscript">
function idCheck(f)
{
 var fx = eval(f.form.txtId);
 if(fx.value.length<6 || fx.value.length>12)
 {
  alert("아이디는 6자리나 12자리이어야 합니다.");
  fx.focus();
 }
}
function pwdCheck(f)
{
 var fx1 = eval(f.form.pwd1);
 var fx2 = eval(f.form.pwd2);
 if(fx1.value != fx2.value)
 {
  alert("패스워드와 패스워드 확인 값이 일치하지 않습니다.");
  //fx2.focus(); //포커서 주면 위와 같을때까지 무한루프~~~
 }
}
function ageCheck(f)
{
 var fx = eval(f.form.txtAge);
 if(fx.value.length < 1)
 {
  alert("나이를 넣어주세요.");
  fx.focus();
 }
 else if(isNaN(fx.value))
 {
  alert("숫자를 넣어주세요.");
  fx.focus();
 }
 else if(fx.value>39 || fx.value<20)
 {
  alert("가입대상 연령이 아닙니다.");
 }
}
function lastCheck()
{
 var f = eval(document.infoedit);
 var fx1 = eval(f.pwd1);
 var fx2 = eval(f.pwd2);
 if(fx1.value != fx2.value)
 {
  alert("패스워드와 패스워드 확인 값이 일치하지 않습니다.");
  fx2.focus();
  return false;
 }
}
</script>
<form name="infoedit" action="#" onSubmit="return lastCheck();">
ID : <input type="text" name="txtId" size="24" onBlur="idCheck(this);"><br>
패스워드 : <input type="password" name="pwd1"><br>
패스워드 확인 : <input type="password" name="pwd2" onFocus="this.select();" onBlur="pwdCheck(this);"><br>
이름 : <input type="text" name="txtName"><br>
나이 : <input type="text" name="txtAge" onBlur="ageCheck(this);"> 가입대상연령 : 20~39<br>
<input type="submit" value="전송">
<input type="reset" value="취소">
</form>
<br>
<h2>실습2</h2>
계산기~~ 이쥐여.<br>
[][연산자선택(+,-,*,/) 체크박스][][= 이벤트][]<br>
<form name="counter">
<input type="text" name="txtNum1">
<select name="selHow">
<option value="0">선택</a>
</select>
<input type="text" id="txtNum2">
<input type="button" value="=" onClick="calcz(this);">
<input type="text" name="txtResult">
</form>
<script type="text/jscript">
var fa = eval(document.counter);
fa.selHow.options.add(new Option("+","1"));
fa.selHow.options.add(new Option("-","2"));
fa.selHow.options.add(new Option("*","3"));
fa.selHow.options.add(new Option("/","4"));

function calcz(f)
{
var fx1 = eval(f.form.txtNum1);
var fx2 = eval(f.form.txtNum2);
var fxx = eval(f.form.txtResult);
var fxa = eval(f.form.selHow);

if(fx1.value.length<1 || isNaN(fx1.value))
{
alert("숫자를 넣어주세요");
fx1.focus();
}
else if(fx2.value.length<1 || isNaN(fx2.value))
{
alert("숫자를 넣어주세요");
fx2.focus();
}
else
{
switch(fxa.options.selectedIndex)
{

 case 1:
 fxx.value = eval(fx1.value)+eval(fx2.value);
 break;

 case 2:
 fxx.value = eval(fx1.value)-eval(fx2.value);
 break;

 case 3:
 fxx.value = eval(fx1.value)*eval(fx2.value);
 break;

 case 4:
 fxx.value = eval(fx1.value)/eval(fx2.value);
 break;

 default:
 alert("연산자를 선택해 주세요");
 fxa.focus();
 break;
}


}

}
</script>
</body>
</html>

Posted by 말없제이
,