대량의 원시데이터를 전달받을 수 있는 입력스트림을 생성하기 위한 클래스
BufferedInputStream(InputStream in) 생성자를 사용해 BufferedInputStream 객체 생성
매개변수로 입력스트림(InputStream 객체)을 전달받아 대량의 원시데이터를 전달받을 수 있도록 확장
대량의 원시데이터를 전달받을 수 있는 출력스트림을 생성하기 위한 클래스
BufferedInputStream(InputStream in) 생성자를 사용해 BufferedInputStream 객체 생성
매개변수로 입력스트림(InputStream 객체)을 전달받아 대량의 원시데이터를 전달받을 수 있도록 확장
import java.io.*;
public class FileCopyByteApp {
public static void main(String[] args) throws IOException {
// BufferedInputStream 클래스: 대량의 원시데이터를 전달받을 수 있는 입력스트림을 생성하기 위한 클래스
// => BufferedInputStream(InputStream in) 생성자를 사용해 BufferedInputStream 객체 생성
// => 매개변수로 입력스트림(InputStream 객체)을 전달받아 대량의 원시데이터를 전달받을 수 있도록 확장
BufferedInputStream in = null;
try {
// 파일 읽어와서
in = new BufferedInputStream(new FileInputStream("c:/data/bandizip.exe"));
} catch (FileNotFoundException e) {
System.out.println("[에러] 원본파일을 찾을 수 없습니다.");
System.exit(0);
}
// BufferedOutputStream 클래스: 대량의 원시데이터를 전달받을 수 있는 출력스트림을 생성하기 위한 클래스
// => BufferedInputStream(InputStream in) 생성자를 사용해 BufferedInputStream 객체 생성
// => 매개변수로 입력스트림(InputStream 객체)을 전달받아 대량의 원시데이터를 전달받을 수 있도록 확장
// 파일 생성
BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream("c:/data/bandizip_byte.exe"));
int readByte;
while(true){
// 파일 읽고
readByte = in.read();
if(readByte == -1){break;}
// 파일 읽으면 파일 생성
out.write(readByte);
}
in.close();
out.close();
System.out.println("[결과] c:\\data\\bandizip_byte.exe 파일로 복사되었습니다.");
}
}