자바의 바이트 기반 스트림은 데이터를 바이트 단위로 처리하는 스트림입니다. 이러한 스트림은 주로 이미지, 동영상, 음악 파일 등 이진 데이터를 다룰 때 사용됩니다. 주요한 바이트 기반 스트림 클래스들은 InputStream 및 OutputStream을 확장한 클래스들입니다.
1. InputStream 클래스와 하위 클래스들
- FileInputStream : FileInputStream 클래스는 파일로부터 바이트 단위로 데이터를 읽어오는 클래스입니다.
try (FileInputStream fis = new FileInputStream("example.txt")) {
int data;
while ((data = fis.read()) != -1) {
System.out.print((char) data);
}
} catch (IOException e) {
e.printStackTrace();
}
- ByteArrayInputStream : ByteArrayInputStream 클래스는 바이트 배열로부터 데이터를 읽어오는 클래스입니다.
byte[] byteArray = {65, 66, 67, 68, 69}; // ASCII values for A, B, C, D, E
try (ByteArrayInputStream bais = new ByteArrayInputStream(byteArray)) {
int data;
while ((data = bais.read()) != -1) {
System.out.print((char) data);
}
} catch (IOException e) {
e.printStackTrace();
}
2. OutputStream 클래스와 하위 클래스들
- FileOutputStream : FileOutputStream 클래스는 파일로 데이터를 바이트 단위로 출력하는 클래스입니다.
try (FileOutputStream fos = new FileOutputStream("example.txt")) {
String data = "Hello, Byte Streams!";
fos.write(data.getBytes());
} catch (IOException e) {
e.printStackTrace();
}
- ByteArrayOutputStream : ByteArrayOutputStream 클래스는 바이트 배열에 데이터를 출력하는 클래스입니다.
try (ByteArrayOutputStream baos = new ByteArrayOutputStream()) {
String data = "Hello, Byte Streams!";
baos.write(data.getBytes());
byte[] byteArray = baos.toByteArray();
} catch (IOException e) {
e.printStackTrace();
}
이러한 바이트 기반 스트림은 주로 이진 데이터를 다루는 데 사용됩니다. InputStream 및 OutputStream 계열의 다양한 하위 클래스들은 데이터를 읽고 쓰기 위한 다양한 기능을 제공하며, 프로그램이 다양한 데이터 소스 및 대상과 상호 작용할 수 있도록 도와줍니다.
With ChatGPT
'JAVA > 포스팅' 카테고리의 다른 글
자바 문자기반 스트림 (0) | 2023.11.25 |
---|---|
자바 보조스트림 (0) | 2023.11.25 |
자바 입출력 (0) | 2023.11.25 |
자바 스트림의 변환 (0) | 2023.11.25 |
자바 Collector구현하기 (0) | 2023.11.25 |