BufferedInputStream BufferedOutputStream 스트림의 입출력 효율을 높이는 보조스트림
한바이트씩 입출력하지않고 버퍼를 이용해 한꺼번에 여러 바이트를 입출력한다.
BufferedInputStream 클래스는 두 가지 생성자를 제공한다.
기본은 기본 버퍼 크기(8,192 바이트)를, 두개의 매개변수는 지정된 입력 스트림과 버퍼 크기를 사용한다.
BufferedInputStream(InputStream in)
BufferedInputStream(InputStream in, int size)
import java.io.*;
public class BufferedInputStreamExample {
public static void main(String[] args) {
try {
// FileInputStream을 사용하여 파일에서 데이터를 읽는 입력 스트림 생성
InputStream inputStream = new FileInputStream("input.txt");
// 기본 버퍼 크기(8,192 바이트)를 사용하여 BufferedInputStream 생성
BufferedInputStream bufferedInputStream1 = new BufferedInputStream(inputStream);
// 사용자가 지정한 버퍼 크기(4,096 바이트)를 사용하여 BufferedInputStream 생성
BufferedInputStream bufferedInputStream2 = new BufferedInputStream(inputStream, 4096);
// 데이터 읽기 작업 수행
// 이때 BufferedInputStream은 내부적으로 버퍼를 사용하여 데이터를 읽음
// 스트림 닫기
bufferedInputStream1.close();
bufferedInputStream2.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
BufferedOutputStream
데이터를 쓸 때 버퍼에 데이터를 미리 쌓아두고 한 번에 버퍼에 쌓인 데이터를 출력 스트림으로 내보내는 방식을 사용한다.
BufferedOutputStream 클래스는 두 가지 생성자를 제공한다.
기본은 기본 버퍼 크기(8,192 바이트)를, 두개의 매개변수는 지정된 출력 스트림과 버퍼 크기를 사용한다.
BufferedOutputStream(OutputStream out)
BufferedOutputStream(OutputStream out, int size)
flush(): 버퍼에 쌓인 모든 데이터를 출력 스트림으로 내보내 버퍼가 가득차지않았더라도 데이터를 출력할 수 있다.
close(): 출력스트림을 닫는다.
import java.io.*;
public class BufferedOutputStreamExample {
public static void main(String[] args) {
try {
// FileOutputStream을 사용하여 파일에 데이터를 쓰는 출력 스트림 생성
OutputStream outputStream = new FileOutputStream("output.txt");
// 기본 버퍼 크기(8,192 바이트)를 사용하여 BufferedOutputStream 생성
BufferedOutputStream bufferedOutputStream1 = new BufferedOutputStream(outputStream);
// 사용자가 지정한 버퍼 크기(4,096 바이트)를 사용하여 BufferedOutputStream 생성
BufferedOutputStream bufferedOutputStream2 = new BufferedOutputStream(outputStream, 4096);
// 데이터 쓰기 작업 수행
// 이때 BufferedOutputStream은 내부적으로 버퍼를 사용하여 데이터를 씀
// 모든 버퍼의 데이터를 출력 스트림으로 내보냄
bufferedOutputStream1.flush();
bufferedOutputStream2.flush();
// 스트림 닫기
bufferedOutputStream1.close();
bufferedOutputStream2.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
'JAVA' 카테고리의 다른 글
DataOutputStream 8가지 기본 자료형의 단위로 쓰다 (0) | 2024.03.21 |
---|---|
DataInputStream 8가지 기본 자료형의 단위로 읽다 (0) | 2024.03.20 |
FilterInputStream FilterOutputStream 데이터를 필터링하거나 변환하다: 압축, 암호화 (0) | 2024.03.20 |
바이트기반 파일입출력 스트림 FileInputStream FileOutputStream, String File boolean FileDescriptor (0) | 2024.03.20 |
데이터를 임시로 배열에 담는다, 바이트배열 ByteArrayInputStream ByteArrayOutputStream (0) | 2024.03.19 |