JAVA/포스팅

자바 바이트기반 스트림

짜집퍼박사(짜박) 2023. 11. 25. 21:16

자바의 바이트 기반 스트림은 데이터를 바이트 단위로 처리하는 스트림입니다. 이러한 스트림은 주로 이미지, 동영상, 음악 파일 등 이진 데이터를 다룰 때 사용됩니다. 주요한 바이트 기반 스트림 클래스들은 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