Java 98(BufferedInputStream, BufferedOutputStream, 파일 복사 [원시데이터] (1Byte))

Kang.__.Mingu·2024년 5월 23일
0

Java

목록 보기
100/108

BufferedInputStream

  • 대량의 원시데이터를 전달받을 수 있는 입력스트림을 생성하기 위한 클래스

  • BufferedInputStream(InputStream in) 생성자를 사용해 BufferedInputStream 객체 생성

  • 매개변수로 입력스트림(InputStream 객체)을 전달받아 대량의 원시데이터를 전달받을 수 있도록 확장

BufferedOutputStream

  • 대량의 원시데이터를 전달받을 수 있는 출력스트림을 생성하기 위한 클래스

  • BufferedInputStream(InputStream in) 생성자를 사용해 BufferedInputStream 객체 생성

  • 매개변수로 입력스트림(InputStream 객체)을 전달받아 대량의 원시데이터를 전달받을 수 있도록 확장

in: 읽고, out: 쓰고 기억!!


FileCopyByteApp

  • 원본파일(c:\data\bandizip.exe)에 저장된 내용을 원시데이터로 읽어 타겟파일(c:\data\bandizip_byte.exe)에 전달하여 저장하는 프로그램 작성 - 파일 복사 프로그램
    // => 가공되지 않은 원시데이터로 입력 또는 출력 처리해 모든 형식의 원본파일을 타켓파일로 복사하여 사용 가능
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 파일로 복사되었습니다.");
    }
}
profile
최선을 다해 꾸준히 노력하는 개발자 망고입니당 :D

0개의 댓글