DataInputStream DataOutputStream
FilterInputStream FilterOutputStream의 자손
DataInputStream DataOutputStream는 DataInput DataOutput인터페이스를 각각구현했기때문에
byte단위가 아닌 8가지 기본 자료형의 단위로 읽고 쓸 수 있다.
https://standout.tistory.com/1480
DataOutputStream(OutputStream out) 주어진 입력 스트림에서 데이터를 읽기 위한 DataOutputStream 객체를 생성한다.
void writeBoolean(boolean b): 주어진 boolean 값을 출력합니다.
void writeByte(int b): 주어진 int 값을 바이트로 출력합니다.
void writeChar(int c): 주어진 int 값을 UTF-16 문자로 출력합니다.
void writeChars(String s): 주어진 문자열의 각 문자를 UTF-16으로 출력합니다.
void writeShort(int s): 주어진 int 값을 short 형태로 출력합니다.
void writeInt(int i): 주어진 int 값을 출력합니다.
void writeLong(long l): 주어진 long 값을 출력합니다.
void writeFloat(float f): 주어진 float 값을 출력합니다.
void writeDouble(double d): 주어진 double 값을 출력합니다.
void writeUTF(Strinf s): UTF-8 인코딩으로 문자열을 출력합니다.
int size(): 현재까지 기록된 바이트의 총 크기를 반환합니다.
예시로 확인해보자.
```java
import java.io.*;
public class DataOutputExample {
public static void main(String[] args) {
try {
// 파일에 데이터를 쓰기 위한 DataOutputStream 생성
DataOutputStream outputStream = new DataOutputStream(new FileOutputStream("data.dat"));
// boolean 값 쓰기
outputStream.writeBoolean(true);
// byte 값 쓰기
outputStream.writeByte(65); // 'A'
// char 값 쓰기
outputStream.writeChar(66); // 'B'
// 문자열 쓰기 (UTF-8로 인코딩하여 쓰기)
outputStream.writeUTF("Hello");
// short 값 쓰기
outputStream.writeShort(123);
// int 값 쓰기
outputStream.writeInt(456);
// long 값 쓰기
outputStream.writeLong(789);
// float 값 쓰기
outputStream.writeFloat(3.14f);
// double 값 쓰기
outputStream.writeDouble(2.71828);
// UTF 문자열 쓰기
outputStream.writeUTF("안녕하세요");
// 출력 스트림 닫기
outputStream.close();
// 파일에서 데이터를 읽기 위한 BufferedReader 생성
BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream("data.dat"), "UTF-8"));
// 파일 내용을 한 줄씩 읽어서 출력하기
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
// 입력 스트림 닫기
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
[출력결과]
true
A
B
Hello
123
456
789
3.14
2.71828
안녕하세요
'JAVA' 카테고리의 다른 글
자동 플러시 auto flush, 버퍼가 가득차거나 출력시 전송한다 (0) | 2024.03.21 |
---|---|
SequenceInputStream 두 개의 입력 스트림을 연결하다 (0) | 2024.03.21 |
DataInputStream 8가지 기본 자료형의 단위로 읽다 (0) | 2024.03.20 |
BufferedInputStream BufferedOutputStream 스트림의 입출력 효율을 높이는 보조스트림 (0) | 2024.03.20 |
FilterInputStream FilterOutputStream 데이터를 필터링하거나 변환하다: 압축, 암호화 (0) | 2024.03.20 |