[ I/O 기초 ] I/O 기초 실습

2009. 6. 23. 17:53 - 에릭투스

2008-07-30

1. Stream : 데이터의 흐름.
   구분 : 입출력 / 바이트

2. Node Stream
 Data source(원천지)와 Data Destination(목적지)가 직접적으로 연결되어있는 방식의 Stream(수도꼭지)
 
  1) InputStream
  2) OutputStream
  3) FileInputStream
  4) FileOutputStream : 해당문장을 파일로 내보낼때 사용(실습했음)
  5) FileReader (2byte) : 문자를 읽을때 사용.
  6) FileWriter (2byte) : 문자를 쓸때 사용.

 * 주로 필터스트림쪽을 많이 사용.
 * 이렇게 수도꼭지를 사용하는 경우는 드물다.
 * 주로 FilterStream을 많이 사용.

 read method를 byte 배열로
 계란판을 만들어 놓고 read로 옮기는 것.
 하지만 조금 문제가 있음 : 갯수가 맞지 않을 경우.. 이상한 문자가 겹칠 수 있음.
 그래서 추천 방법
 while((n=is.read(b,0,b.length)) != -1){
 }
 read(byte 배열, 0, 배열끝)
 read가 값이 없으면 -1 호출.
  System.out.write(b,0,n);

마지막 실습 :
 FileOutputStream fos = new FileOutputStream( "경로" );

*일반적으로 FilterStream 계열을 많이 사용.


1) NodeStream : 수도꼭지 같은 아이.
 ex) FileInputStream , FileOutputStream

2) FilterStream : 정수기 같은 아이
  임시로 저장하는 공간 : Buffer
    so Data의 이동이 좀더 효율적이게 됨.
 
NodeStream 과 FilterStream 은 밀접한 관계가 있다.

java.io
클래스 FileOutputStream
<java.lang.Object  java.io.OutputStream java.io.FileOutputStream>
: FilterStream으로 감싸준다.
java.io
클래스 BufferedOutputStream
java.lang.Object
  java.io.OutputStream
      java.io.FilterOutputStream
          java.io.BufferedOutputStream
: 생성시 인자값으로 꼭 OutputStream 을 받아야한다.
: 작동하는 방식이 조금 다르다.
:  실습 : BufferedInputStream , BufferedOutputStream
수도꼭지가 필요하다.
 FileInputStream , FileOutputStream.

FileOutputStream(or Input)
* 수도꼭지 - 정수기 - 물.
정수기에 일정량의 물이 들어갔는데..
필터에 물이 다 차야 물이 나오는 것.

FilterStream 사용이유
파일이 커질수록 체감성능은 높아짐
io도 마지막에는 닫아줘야한다.
finally
close를 해주지 않을 경우 메모리 차지공간이 늘어나고,
쓰레드가 계속 해당 파일을 물고있기때문에 삭제도 안됨

io에서는 한번 잠그면 그걸로 끝.
다시 여는 방법이 없다.


실습하면서 알게된점.

if(o == bt1){
     fc = new JFileChooser("c:/");
     fc.showOpenDialog(this);
     
     try {
      File file = fc.getSelectedFile();
      tx1.setText(file.getCanonicalPath());
      // 파일 경로를 찍어주는 녀석.
     
     } catch (IOException e1) {
      // TODO Auto-generated catch block
      e1.printStackTrace();
     }

   }

보더는 패널에 추가가능.
panel . setBorder(BorderFactory .createtitledBorder(BorderFactory.createRaised....
       //보더공장.

setResizable(false) : 사이즈 조절 불가능
filechooser . showOpenDialog ( parent );
: 사용자가 선택을 했는지 취소를 했는지 알아야하니까 return type을  int

filechooser . showSaveDialog(this);


JFileChooser . APPROVE_OPTION
:열기버튼을 누르면 INT 값을 호출. 실제값은 0
file_src = fc . getSelectedFile(); : 파일을 가져오는 옵션
tf_src.setText(file_src.getAbsolutePath());


------------------------------JButton
 1.  b1.setVerticalTextPosition(AbstractButton.CENTER);

--------------------------------------------------------------------------------------------------------


'자바 기본 공부 > I/O' 카테고리의 다른 글

[ I/O 기초 ] I/O 기초 및 실습  (0) 2009.06.23
[ IO 기초 ] I/O 기초이론  (0) 2009.06.23

다른 카테고리의 글 목록

자바 기본 공부/I/O 카테고리의 포스트를 톺아봅니다