프로그래밍/Java, Android

(Java) 파일 입력과 출력 - FileInputStream, FileOutputStream

길가다주운노트 2016. 7. 10. 17:34

자바 I/O 시스템은 스트림(stream)으로 구성되어 있다.

스트림은 데이터 흐름의 추상적 개념으로 입력 스트림(input stream)은 프로그램으로의 데이터 흐름이며(파일->프로그램),

출력 스트림은(output stream)은 프로그램으로부터 나오는 데이터의 흐름을 나타낸다(프로그램->파일).


자바에서의 스트림의 형태는 바이트 스트림 클래스와 문자 스트림 클래스 두 종류가 있다.

바이트 스트림 클래스는 InputStream, OutputStream으로 입출력을 사용하고 

문자 스트림 클래스는 Reader, Writer로 입출력을 한다.


 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import java.io.*;
 
public class FileCopy {
 
    public static void main(String[] args) throws IOException {
        File input = new File("/Users/ghdrl95/Documents/input.txt");
        File output = new File("/Users/ghdrl95/Documents/output.txt");
        
        FileInputStream in = new FileInputStream(input);
        FileOutputStream out = new FileOutputStream(output);
        
        int cTemp;
        
        while((cTemp = in.read()) != -1){
            out.write(cTemp);
        }
    }
 
}
 
cs

바이트 스트림 중 하나인 File(In,Out)putStream 이다.

File 클래스를이용해 파일의 경로를 입력하고 그것을 파일스트림에게 준다.

그리고 read()메소드를 통해 한글자씩 받아 write메소드를 통해 출력한다.

경로를 적지 않으면 프로젝트가 생성된 곳에 파일이 생성, 입력되며 파일이 없는 경우 IOexception이 발생한다.