어떤 파일 내용을 다른 파일에 복사하여 넣는 것을 해볼 것이다.
먼저 메모장에 아무내용이나 적어 넣는다
필자는 이렇게 넣어 파일 명을 input.txt 로 하였다.
참고로 해당 파일은 자바 해당 패키지 디렉터리 바로 밑에 있어야한다.
준비할 것은 이게 전부다. 소스를 보자
package practice;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
public class Samp2 {
public static void main(String[] args) throws Exception{
InputStream in = new FileInputStream("input.txt"); //input.txt 파일을 읽어들이기
OutputStream out = new FileOutputStream("output.txt"); // output.txt파일을 생성하고
// 읽어들인 내용을 복사하여 output.txt 파일에 덮어쓰기
int data;
while(true) {
data=in.read(); //바이트 단위로 파일 내용을 읽음
if(data==-1) //-1 이라는 것은 끝을 의미
break;
out.write(data); //바이트 단위로 받은 내용 하나씩 output.txt에 복사
}
in.close(); //항상 잊지 말아야 할 것 close 메소드 호출
out.close();
}
}
InputStream클래스는 바이트 단위로 데이터를 읽어 들이는 모든 입력 스트림이 상속하는 최상위 클래스이다.(object 클래스 다음으로) 이에 대응하는 클래스는 OutputStream클래스이다.
FileInputStream 은 파일입력스트림이고 FileOutputStream은 파일출력스트림이다. 이둘은 각각 InputStream과 OutputStream을 상속한다.
컴파일 실행을 하면 콘솔창에는 변화가 없지만 해당 패키지 안에 output.txt파일이 생성되어 있는 것을 볼 수 있을 것이다.
반응형