반응형
OutputStream
바이트 단위 출력 스트림 최상위 추상 클래스
많은 추상 메서드가 선언되어 있고 이를 하위 스트림이 상속받아 구현함
주요 하위 클래스
스트림 클래스 | 설명 |
FileOutputStream | 파일에서 바이트 단위로 자료를 씁니다 |
ByteArrayOutputStream | byte 배열 메모리에서 바이트 단위로 자료를 씁니다 |
FilterOutputStream | 기반 스트림에서 자료를 쓸 때 추가 기능을 제공하는 보조 스트림의 상위 클래스 |
주요 메서드
메서드 | 설명 |
int write() | 한 바이트를 출력 |
int write(byte b[]) | b[] 크기의 자료를 출력 |
int write(byte b[], int off, int len) | b[] 배열에 있는 자료의 off위치부터 len 개수만큼 자료를 출력 |
void flush() | 출력을 위해 잠시 자료가 머무르는 출력 버퍼를 강제로 비워 자료를 출력 |
void close() | 출력 스트림과 연결된 대상 리소스를 닫습니다. 출력 버퍼가 지워집니다. |
파일에 한 바이트씩 쓰기
FileOutputStreamTest1.java
package ch61;
import java.io.FileOutputStream;
public class FileOutputStreamTest1 {
public static void main(String[] args) {
try(FileOutputStream fos = new FileOutputStream("output.txt")) {
fos.write(65); // A
fos.write(66); // B
fos.write(67); // C
} catch (Exception e) {
// TODO: handle exception
System.out.println(e.getMessage());
}
System.out.println("end");
}
}
실행하고 확인하면 output.txt 파일이 생성됨
byte[] 배열에 A-Z까지 넣고 배열을 한꺼번에 파일에 쓰기
FileOutputStreamTest2.java
package ch61;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
public class FileOutputStreamTest2 {
public static void main(String[] args) throws FileNotFoundException {
// true이면 기존 데이터 뒤에 추가되어서 작성되고 false이면 데이터가 변경된다
FileOutputStream fos = new FileOutputStream("output2.txt", false);
try(fos) { // java9 부터 지원
byte[] bs = new byte[26];
byte data = 65;
for (int i = 0; i < bs.length; i++) {
bs[i] = data++;
}
fos.write(bs);
// fos.write(bs, 2, 5);
} catch (Exception e) {
// TODO: handle exception
System.out.println(e.getMessage());
}
System.out.println("end");
}
}
실행후 확인하면 output2.txt 파일 생성됨
반응형
'언어 > JAVA' 카테고리의 다른 글
여러가지 보조 스트림 클래스 (0) | 2021.05.23 |
---|---|
문자단위 입출력 스트림 (0) | 2021.05.23 |
바이트 단위 입출력 스트림 (0) | 2021.05.23 |
표준 입출력 스트림 (0) | 2021.05.23 |
자바의 입출력(I/O 스트림) 종류 설명 (0) | 2021.05.23 |