FileInputStream — 파일에서 바이트 입력 스트림 읽기
FileInputStream — 파일에서 바이트 입력 스트림 읽기
FileInputStream은 파일 시스템의 파일에서 입력 바이트를 얻어요. 사용할 수 있는 파일은 호스트 환경에 따라 달라지며, 이 클래스는 이미지 데이터 같은 원시 바이트 스트림을 읽기 위한 것이에요. 문자 스트림을 읽으려면 FileReader를 사용하는 것이 좋아요.
본문
이 클래스는 java.io.InputStream을 상속하며 Closeable, AutoCloseable을 구현합니다. close() 메서드는 직접 또는 try-with-resources 문으로 호출해 스트림이 사용하는 자원을 해제해야 해요. 하위 클래스는 스트림이 도달 불가능해진 후 자원 정리가 필요하면 Cleaner나 다른 메커니즘을 사용해야 해요.
생성자
FileInputStream(String name)— 파일 시스템에서 경로명name이 가리키는 파일에 연결을 열어FileInputStream을 만들어요. 파일이 존재하지 않거나 디렉터리·다른 이유로 열 수 없으면FileNotFoundException을 던져요.FileInputStream(File file)—File객체file이 가리키는 실제 파일에 연결을 열어 만들어요.FileInputStream(FileDescriptor fdObj)— 실제 파일에 대한 기존 연결을 나타내는 파일 설명자fdObj를 사용해 만들어요.
메서드
int read()— 이 입력 스트림에서 바이트 하나를 읽어요. 끝에 도달하면-1을 반환해요.int read(byte[] b)— 최대b.length바이트를 바이트 배열로 읽어요.int read(byte[] b, int off, int len)— 최대len바이트를 바이트 배열로 읽어요.long skip(long n)— 입력 스트림에서n바이트를 건너뛰고 폐기해요.int available()— 블로킹 없이 읽을 수 있는 바이트 수의 추정치를 반환해요.void close()— 이 파일 입력 스트림을 닫고 관련 시스템 자원을 해제해요.FileChannel getChannel()— 이 파일 입력 스트림과 연결된 고유한FileChannel객체를 반환해요.final FileDescriptor getFD()— 실제 파일에 대한 연결을 나타내는FileDescriptor객체를 반환해요.
FileInputStream은 파일에서 원시 바이트를 순차적으로 읽는 전통적인 방식이며, getChannel()을 통해 NIO로 전환하거나 FileReader로 문자 기반 읽기를 할 수 있어요.