JAVA/포스팅

자바 DataOutputStream

짜집퍼박사(짜박) 2023. 11. 26. 02:14

DataOutputStream 클래스는 자바의 출력 스트림을 통해 기본 데이터 유형을 쓸 수 있게 해주는 보조 스트림 중 하나입니다. 주로 원시 데이터 타입의 바이너리 형식으로 데이터를 저장할 때 사용됩니다.

DataOutputStream은 기본 데이터 타입(primitive data types)과 문자열을 바이너리 형태로 쓸 수 있습니다. 예를 들어, int, double, boolean, char 등의 기본 데이터 유형을 바이트 스트림에 쓰는 데 사용됩니다.

다음은 DataOutputStream의 주요 메서드 몇 가지입니다:

- writeBoolean(boolean v): 바이트 스트림에 boolean 값을 씁니다.
- writeByte(int v): 바이트 스트림에 byte 값을 씁니다.
- writeShort(int v): 바이트 스트림에 short 값을 씁니다.
- writeInt(int v): 바이트 스트림에 int 값을 씁니다.
- writeLong(long v): 바이트 스트림에 long 값을 씁니다.
- writeFloat(float v): 바이트 스트림에 float 값을 씁니다.
- writeDouble(double v): 바이트 스트림에 double 값을 씁니다.
- writeChar(int v): 바이트 스트림에 char 값을 씁니다.
- writeUTF(String str): 바이트 스트림에 UTF-8 인코딩으로 된 문자열을 씁니다.

 

다음은 간단한 사용 예제입니다.

import java.io.DataOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class DataOutputStreamExample {
    public static void main(String[] args) {
        try (DataOutputStream dataOutputStream = new DataOutputStream(new FileOutputStream("data.bin"))) {

            // 바이너리 파일에 데이터 쓰기
            dataOutputStream.writeBoolean(true);
            dataOutputStream.writeByte(123);
            dataOutputStream.writeShort(456);
            dataOutputStream.writeInt(789);
            dataOutputStream.writeLong(1000000000L);
            dataOutputStream.writeFloat(3.14f);
            dataOutputStream.writeDouble(2.71828);
            dataOutputStream.writeChar('A');
            dataOutputStream.writeUTF("Hello, DataOutputStream!");

            System.out.println("Data has been written to data.bin");

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

이 예제에서는 DataOutputStream을 사용하여 바이너리 파일에 다양한 기본 데이터 유형을 쓰고 있습니다. 데이터를 읽을 때 사용되는 DataInputStream와 함께 사용하여 데이터의 일관성을 유지하는 데 유용합니다.

 

With ChatGPT

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

자바 PrintStream  (0) 2023.11.26
자바 SequenceInputStream  (0) 2023.11.26
자바 DataInputStream  (0) 2023.11.26
자바 BufferedOutputStream  (0) 2023.11.26
자바 BufferedInputStream  (0) 2023.11.26