FileOutputStream — 파일에 바이트 쓰는 출력 스트림
FileOutputStream — 파일에 바이트 쓰는 출력 스트림
FileOutputStream은 File이나 FileDescriptor에 데이터를 쓰기 위한 출력 스트림이에요. 파일을 사용할 수 있거나 만들 수 있는지는 기반 플랫폼에 따라 달라져요. 일부 플랫폼은 특히 파일을 한 번에 하나의 FileOutputStream(또는 다른 파일 쓰기 객체)만 쓰기용으로 열 수 있게 하는데, 이런 경우 관련 파일이 이미 열려 있으면 생성자가 실패해요. FileOutputStream은 이미지 데이터 같은 원시 바이트 스트림을 쓰기 위한 것이에요. 문자 스트림을 쓰려면 FileWriter를 사용하는 것이 좋아요.
본문
이 클래스는 java.io.OutputStream을 상속하며 Closeable, Flushable, AutoCloseable을 구현합니다. close() 메서드는 직접 또는 try-with-resources 문으로 호출해 스트림이 사용하는 자원을 해제해야 해요. 하위 클래스는 스트림이 도달 불가능해진 후 자원 정리가 필요하면 Cleaner나 다른 메커니즘을 사용해야 해요.
생성자
FileOutputStream(String name)— 지정한 이름의 파일에 쓰기 위한 파일 출력 스트림을 만들어요.FileOutputStream(String name, boolean append)— 파일에 쓰기 위한 스트림을 만들되,append가true면 바이트를 파일 끝에 덧붙여요.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과 함께 감싸서 자주 사용해요.