FileOutputStream — 파일에 바이트 쓰는 출력 스트림

FileOutputStream — 파일에 바이트 쓰는 출력 스트림

FileOutputStreamFile이나 FileDescriptor에 데이터를 쓰기 위한 출력 스트림이에요. 파일을 사용할 수 있거나 만들 수 있는지는 기반 플랫폼에 따라 달라져요. 일부 플랫폼은 특히 파일을 한 번에 하나의 FileOutputStream(또는 다른 파일 쓰기 객체)만 쓰기용으로 열 수 있게 하는데, 이런 경우 관련 파일이 이미 열려 있으면 생성자가 실패해요. FileOutputStream은 이미지 데이터 같은 원시 바이트 스트림을 쓰기 위한 것이에요. 문자 스트림을 쓰려면 FileWriter를 사용하는 것이 좋아요.

출처: Java API Reference

본문

이 클래스는 java.io.OutputStream을 상속하며 Closeable, Flushable, AutoCloseable을 구현합니다. close() 메서드는 직접 또는 try-with-resources 문으로 호출해 스트림이 사용하는 자원을 해제해야 해요. 하위 클래스는 스트림이 도달 불가능해진 후 자원 정리가 필요하면 Cleaner나 다른 메커니즘을 사용해야 해요.

생성자

  • FileOutputStream(String name) — 지정한 이름의 파일에 쓰기 위한 파일 출력 스트림을 만들어요.
  • FileOutputStream(String name, boolean append) — 파일에 쓰기 위한 스트림을 만들되, appendtrue면 바이트를 파일 끝에 덧붙여요.
  • FileOutputStream(File file) — 지정한 File 객체가 나타내는 파일에 쓰기 위한 스트림을 만들어요.
  • FileOutputStream(File file, boolean append) — 덧붙이기 여부를 지정해 File 객체에 써요.
  • FileOutputStream(FileDescriptor fdObj) — 실제 파일에 대한 기존 연결을 나타내는 지정한 파일 설명자에 쓰기 위한 스트림을 만들어요.

파일이 존재하지 않거나 디렉터리이거나 다른 이유로 열 수 없으면 FileNotFoundException을 던져요.

메서드

  • void write(int b) — 지정한 바이트를 이 파일 출력 스트림에 써요.
  • void write(byte[] b) — 지정한 바이트 배열의 b.length 바이트를 써요.
  • void write(byte[] b, int off, int len)off 오프셋부터 b 배열의 len 바이트를 써요.
  • void close() — 스트림을 닫고 관련 시스템 자원을 해제해요.
  • FileChannel getChannel() — 이 파일 출력 스트림과 연결된 고유한 FileChannel 객체를 반환해요.
  • final FileDescriptor getFD() — 이 스트림과 연결된 파일 설명자를 반환해요.

FileOutputStream은 파일에 원시 바이트를 저장하는 전통적인 방식으로, DataOutputStream이나 BufferedOutputStream과 함께 감싸서 자주 사용해요.

더 알아보기 (Learn more)