출력을 위해 자료가 머무르는 출력 버퍼를 강제로 비워 자료를 출력. 소켓 혹은 네트워크에서 가끔 사용
void close()
출력 스트림과 연결된 대상 리소스를 닫음. 출력 버퍼 비워짐 (flush() 호출됨)
예제 코드
FileOutputStreamTest1.java
파일에 한바이트 씩 출력
입력 스트림은 스트림에 파일이 없을 때 FileNotFoundException이 떨어지지만 출력 스트림은 파일을 생성함
package ch14;
import java.io.FileOutputStream;
import java.io.IOException;
public class FileOutputStreamTest1 {
public static void main(String[] args) {
try (FileOutputStream fos = new FileOutputStream("output.txt");) { // 출력 스트림 생성
// 한 바이트씩 write
fos.write(65); // A
fos.write(66); // B
fos.write(67); // C
} catch (IOException e) {
System.out.println(e);
}
System.out.println("end");
}
}
FileOutputStreamTest2.java
바이트 배열 출력
package ch14;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class FileOutputStreamTest2 {
public static void main(String[] args) throws FileNotFoundException {
FileOutputStream fos = new FileOutputStream("output2.txt"); // 출력 스트림 생성
try(fos) { // try의 변수로 스트림 인스턴스 입력, autoclose됨
byte[] bs = new byte[26];
byte data = 65;
for(int i = 0; i < bs.length; i++) {
bs[i] = data++;
}
fos.write(bs); // A~Z
} catch(IOException e) {
System.out.println(e);
}
System.out.println("end");
}
}