Java 95(FileInputStream, 파일 읽어오기, [원시데이터] (1Byte))

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

Java

목록 보기
97/108

FileInputStream

  • 파일에 저장된 내용을 원시데이터로 제공받을 수 있는 입력스트림을 생성하기 위한 클래스

  • FileInputStream(String name) 생성자를 사용하여 FileInputStream 객체 생성

    • name 매개변수에는 입력 스트림을 생성하기 위한 파일경로를 전달하여 저장

    • name 매개변수로 전달받은 파일경로에 파일이 없는 경우 FileNotFoundException 발생

    • FileNotFoundException 이 발생되면 반드시 try ~ catch 구문을 사용하여 예외처리

      • FileOutputStream에서는 파일이 없으면 생성하여 작성하면 되지만, FileInputStream은 파일이 없으면 불러올 수 없기 때문에 이럴 경우 개발자가 직접 예외처리를 해줘야 한다.

FileInputStreamApp

  • 파일에 저장된 내용을 원시데이터로 제공받아 모니터(콘솔)에 출력하는 프로그램 작성
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

public class FileInputStreamApp {
    public static void main(String[] args) throws IOException {
        // FileInputStream 클래스: 파일에 저장된 내용을 원시데이터로 제공받을 수 있는 입력스트림을
        // 생성하기 위한 클래스
        // FileInputStream(String name) 생성자를 사용하여 FileInputStream 객체 생성
        // => name 매개변수에는 입력 스트림을 생성하기 위한 파일경로를 전달하여 저장
        // => name 매개변수로 전달받은 파일경로에 파일이 없는 경우 FileNotFoundException 발생
        // => FileNotFoundException 이 발생되면 반드시 try ~ catch 구문을 사용하여 예외처리
        FileInputStream in = null;

        try {
            in = new FileInputStream("c:/data/byte.txt");
        } catch (FileNotFoundException e) {
            System.out.println("[에러] c:\\data\\byte.txt 파일을 찾을 수 없습니다.");
            System.exit(0);
        }
        System.out.println("[메세지] c:\\data\\byte.txt 파일에 저장된 내용입니다.");

        int readByte;

        while(true){
            // 파일 입력스트림을 사용해 파일에 저장된 내용을 원시데이터로 반환받아 변수에 저장 - Load
            readByte = in.read();

            // 파일 마지막에 존재하는 EoF(End of File)를 반환받은 경우 반복문 종료
            if(readByte == -1)break;

            // 모니터(콘솔) 출력스트림으로 원시데이터를 전달하여 출력 처리
            System.out.write(readByte);
        }

        // FileInputStream.close(): 파일 입력스트림을 제거하는 메소드
        in.close();
    }
}
profile
최선을 다해 꾸준히 노력하는 개발자 망고입니당 :D

0개의 댓글