[자바/안드로이드] FileInputStream FileOutputStream 알아보기
이 스트림을 이용해서 파일 시스템에 있는 파일로부터 바이트 데이터를 읽거나 파일에 바이트 데이터를 저장할 수 있다.
즉, 파일 입출력용 스트림이다. 바이트 스트림이므로 바이너리 데이터를 파일로부터 읽거나 그대로 파일에 저장하는 기능을 한다.
public class JavaProject { public static void main(String[] args) { // 파일의 내용을 바이트 단위로 읽어들이기 위한 스트림 객체 FileInputStream fi = null; // 파일의 내용을 바이트 단위로 쓰기 위한 스트림 객체 FileOutputStream fo = null; int c; try { // 복사할 파일을 바이트 단위로 읽어들이기 위해 FileInputStream에 연결 fi = new FileInputStream("C:\\Users\\han\\Desktop\\src.txt"); // 복사될 파일에 바이트 단위로 쓰기 위해 FileOutputStream에 연결 fo = new FileOutputStream("C:\\Users\\han\\Desktop\\copy.txt"); // read()함수를 통해 파일 끝에 도달할 떄까지 1바이트 씩 읽어들인다. // read() 메소드는 파일의 끝에 도달시 -1 반환한다. while ((c = fi.read()) != -1) { // 1바이트씩 읽어들인 내용을 복사될 파일에 추가한다. fo.write((char)c); } fi.close(); fo.close(); } catch(Exception ex) { System.out.println("입출력 에러"); } } }
"C:\\Users\\han\\Desktop\\src.txt" 파일로부터 바이트 단위로 읽을 수 있는
바이트 스트림을 생성하는 코드는 다음과 같다.
fi = new FileInputStream("C:\\Users\\han\\Desktop\\src.txt");
이 코드를 실행하면 "C:\\Users\\han\\Desktop\\src.txt" 파일을 찾아 열고
파일을 읽을 수 있는 스트림 객체 fi를 생성한다.
스트림 생성 후 fi 객체의 메소드를 호출하여 스트림으로부터 파일 데이터를 읽을 수 있다.
"C:\\Users\\han\\Desktop\\copy.txt" 파일에 바이트 단위로 쓸 수 있는
바이트 스트림을 생성하는 코드는 다음과 같다.
fo = new FileInputStream("C:\\Users\\han\\Desktop\\copy.txt");
이 코드를 실행하면 "C:\\Users\\han\\Desktop\\src.txt" 파일을 찾아 열고
파일에 데이터를 쓸 수 있는 스트림 객체 fo를 생성한다.
스트림 생성 후 fo 객체의 메소드를 호출하여 스트림을 이용해서 파일에 데이터를 쓸 수 있다.
// read() 메소드는 파일의 끝에 도달시 -1 반환한다.
while ((c = fi.read()) != -1) { // src.txt 파일로부터 1바이트씩 읽어들인다.
fo.write((byte)c); // 읽은 바이트 데이터를 copy.txt.파일에 복사한다.
}
감사합니다. ^_^