DataInputStream 클래스는 자바의 입력 스트림을 통해 기본 데이터 유형을 읽을 수 있게 해주는 보조 스트림 중 하나입니다. 주로 원시 데이터 타입의 바이너리 형식으로 저장된 데이터를 읽을 때 사용됩니다.
DataInputStream은 기본 데이터 타입(primitive data types)과 문자열을 바이너리 형태로 읽을 수 있습니다. 예를 들어, int, double, boolean, char 등의 기본 데이터 유형을 바이트 스트림으로부터 읽어오는 데 사용됩니다.
다음은 DataInputStream의 주요 메서드 몇 가지입니다:
- readBoolean(): 바이트 스트림에서 boolean 값을 읽습니다.
- readByte(): 바이트 스트림에서 byte 값을 읽습니다.
- readShort(): 바이트 스트림에서 short 값을 읽습니다.
- readInt(): 바이트 스트림에서 int 값을 읽습니다.
- readLong(): 바이트 스트림에서 long 값을 읽습니다.
- readFloat(): 바이트 스트림에서 float 값을 읽습니다.
- readDouble(): 바이트 스트림에서 double 값을 읽습니다.
- readChar(): 바이트 스트림에서 char 값을 읽습니다.
- readUTF(): 바이트 스트림에서 UTF-8 인코딩으로 된 문자열을 읽습니다.
다음은 간단한 사용 예제입니다.
import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.IOException;
public class DataInputStreamExample {
public static void main(String[] args) {
try (DataInputStream dataInputStream = new DataInputStream(new FileInputStream("data.bin"))) {
// 바이너리 파일에서 데이터 읽기
boolean booleanValue = dataInputStream.readBoolean();
byte byteValue = dataInputStream.readByte();
short shortValue = dataInputStream.readShort();
int intValue = dataInputStream.readInt();
long longValue = dataInputStream.readLong();
float floatValue = dataInputStream.readFloat();
double doubleValue = dataInputStream.readDouble();
char charValue = dataInputStream.readChar();
String stringValue = dataInputStream.readUTF();
// 읽은 데이터 출력
System.out.println("booleanValue: " + booleanValue);
System.out.println("byteValue: " + byteValue);
System.out.println("shortValue: " + shortValue);
System.out.println("intValue: " + intValue);
System.out.println("longValue: " + longValue);
System.out.println("floatValue: " + floatValue);
System.out.println("doubleValue: " + doubleValue);
System.out.println("charValue: " + charValue);
System.out.println("stringValue: " + stringValue);
} catch (IOException e) {
e.printStackTrace();
}
}
}
이 예제에서는 DataInputStream을 사용하여 바이너리 파일에서 다양한 기본 데이터 유형을 읽어오고 있습니다. 데이터를 쓸 때 사용되는 DataOutputStream와 함께 사용되어 데이터의 일관성을 유지하는 데 유용합니다.
With ChatGPT
'JAVA > 포스팅' 카테고리의 다른 글
자바 SequenceInputStream (0) | 2023.11.26 |
---|---|
자바 DataOutputStream (0) | 2023.11.26 |
자바 BufferedOutputStream (0) | 2023.11.26 |
자바 BufferedInputStream (0) | 2023.11.26 |
자바 FilterOutputStream (0) | 2023.11.26 |