JAVA/포스팅

자바 OutputStream

짜집퍼박사(짜박) 2023. 11. 25. 23:33

자바의 OutputStream은 바이트 기반 출력 스트림을 나타내는 추상 클래스입니다. OutputStream은 바이트 단위로 데이터를 출력할 수 있는 메서드를 정의하고 있습니다. 마찬가지로 InputStream과 마찬가지로 이 클래스는 추상 클래스이므로 직접적으로 인스턴스를 생성하여 사용하는 것이 아니라, 이를 상속받아 구현한 구체적인 클래스들을 사용합니다.

주요 OutputStream 하위 클래스들과 이들의 주요 메서드에 대해 알아보겠습니다.

 

1. FileOutputStream

파일에 바이트 단위로 데이터를 출력하는 데 사용됩니다.

try (FileOutputStream fos = new FileOutputStream("example.txt")) {
    byte[] data = "Hello, World!".getBytes();
    fos.write(data);
} catch (IOException e) {
    e.printStackTrace();
}

 

2. ByteArrayOutputStream

바이트 배열에 데이터를 출력하는 데 사용됩니다.

try (ByteArrayOutputStream baos = new ByteArrayOutputStream()) {
    byte[] data = "Hello, World!".getBytes();
    baos.write(data);
    byte[] result = baos.toByteArray();
    // result 배열에 데이터가 저장됨
} catch (IOException e) {
    e.printStackTrace();
}

 

3. BufferedOutputStream

성능 향상을 위해 버퍼링을 제공하는 보조 스트림입니다.

try (BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("example.txt"))) {
    byte[] data = "Hello, World!".getBytes();
    bos.write(data);
} catch (IOException e) {
    e.printStackTrace();
}

 

4. DataOutputStream

기본 자료형 데이터를 바이트 단위로 출력하는 데 사용됩니다.

try (DataOutputStream dos = new DataOutputStream(new FileOutputStream("data.bin"))) {
    int intValue = 42;
    double doubleValue = 3.14;
    dos.writeInt(intValue);
    dos.writeDouble(doubleValue);
} catch (IOException e) {
    e.printStackTrace();
}

 

5. ObjectOutputStream

객체를 바이트 단위로 출력하는 데 사용됩니다. 주로 직렬화된 객체를 출력할 때 활용됩니다.

try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("object.bin"))) {
    Object obj = new SomeSerializableObject();
    oos.writeObject(obj);
} catch (IOException e) {
    e.printStackTrace();
}

 

6. FilterOutputStream

보조 스트림의 기본 클래스로서 여러 종류의 필터 스트림을 생성할 때 사용됩니다.

try (FilterOutputStream fos = new FilterOutputStream(new FileOutputStream("example.txt"))) {
    byte[] data = "Hello, World!".getBytes();
    fos.write(data);
} catch (IOException e) {
    e.printStackTrace();
}

이러한 OutputStream 클래스들을 사용하여 다양한 목적으로 데이터를 바이트 단위로 출력할 수 있습니다. 필요에 따라 보조 스트림을 추가하여 기능을 확장하거나 성능을 향상시킬 수 있습니다.

 

With ChatGPT

'JAVA > 포스팅' 카테고리의 다른 글

자바 ByteArrayOutputStream  (0) 2023.11.25
자바 ByteArrayInputStream  (0) 2023.11.25
자바 InputStream  (0) 2023.11.25
자바 문자기반 스트림  (0) 2023.11.25
자바 보조스트림  (0) 2023.11.25