[자바/안드로이드] FileInputStream FileOutputStream 알아보기

Posted by 앱해피
2015. 6. 22. 01:12 자바(JAVA)

 

 

 

 

FileInputStream / FileOutputStream
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바이트 씩 읽어들인다.
// read() 메소드는 파일의 끝에 도달시 -1 반환한다.


while ((c = fi.read()) != -1) { // src.txt 파일로부터 1바이트씩 읽어들인다.
                

           fo.write((byte)c); // 읽은 바이트 데이터를 copy.txt.파일에 복사한다.

}

 

감사합니다. ^_^