본문 바로가기

JAVA

java.io 패키지 실습 - 파일 읽기,쓰기(InputStream)

파일 읽기


import java.io.BufferedInputStream;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.IOException;

//파일 읽기

 

public class FileIoEx01 {

 

        public static void main(String[] args) {

              

               //null : 아무런 값도 존재하지 않음.

               FileInputStream fis = null;

              

               BufferedInputStream bis = null;       //2 스트림 선언. (1 스트림보다 빠름)

              

               // file open - read 방식으로

//             fis = new FileInputStream(new File("c:\\dirs\\text.txt"));

               try {

                       fis = new FileInputStream("c:\\dirs\\text.txt"); //직접 파일을 열어도

                       bis = new BufferedInputStream(fis); 

//2 스트림은 인자를 1 스트림만 받을 있음

                      

                       int data = 0;

                       while((data = bis.read()) != -1){            //-1 -> 파일의

                              System.out.print((char)data); // char 형변환해줘야함.

  //안하면 아스키코드로 나옴

                                                     // 한글은 깨짐 . 엔터키도 문자로 인식

                       }

               } catch (FileNotFoundException e) {

                       // TODO Auto-generated catch block

              

               } catch (IOException e) {

                       // TODO Auto-generated catch block

       

               }finally{      //파일을 열면 닫아줘야함. 예외처리가 됬을때와 안됫을때 둘다 닫아줘야함.

                                      //둘다 닫아줘야하기 때문에 finally 사용!

                       if(fis != null)        try{fis.close();} catch(IOException e){}

                       if(bis != null)        try{bis.close();} catch(IOException e){}

               }

 

        }

}


 

 

 

 

 

 

파일 쓰기


import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

//파일 쓰기

 

public class FileIoEx02 {

 

        public static void main(String[] args) {

               FileOutputStream fos = null;

              

               //파일이 없으면 새로 생성

               //false 경우 덮어쓰기

               //true 경우 이어쓰기

               try {

                       fos = new FileOutputStream("c:\\dirs\\text2.txt", false);

                      

                       fos.write('a');

                       fos.write('b');

                       fos.write('c');

                      

                       fos.write('\r');       //엔터키값 윈도우 : \r\n (두개 써줘야함)

                       fos.write('\n');       //                유닉스 : \n

                      

                       fos.write('a');

                       fos.write('b');

                       fos.write('c');

                      

               } catch (FileNotFoundException e) {

 

               } catch (IOException e) {

 

               } finally{

                       if(fos != null){

                              try{fos.close();

                              }catch(IOException e){}

                       }

               }

              

        }

}