DataInputStream, DataOutputStream
import java.io.*; class DataInOutStream { public static void main(String[] args) throws Exception { String sourcefile="test.txt"; String targetfile="test.txt"; //DataOutputStream : 필터스트림 // 자바의 다양한 자료형(Data Type)들은 바이트 단위로 분해하여 쓰기 작업을 한다. // DataInputStream과 짝을 이뤄 사용한다. //1. 파일 sourcefile과 노드 연결 스트림 생성 FileOutputStream fos = new FileOutputStream(targetfile); // test.txt에 쓰기 //2.필터링: DataOutputStream과 연결 DataOutputStream dos = new DataOutputStream(fos); //3.자바의 다양한 자료형의 데이터를 써보자. byte b=2; byte [] arr={65,66,67}; boolean bool=true; char ch ='가'; String str="홍길동";//9바이트+2바이트 dos.write(b); dos.write(arr,0,arr.length); dos.writeBoolean(bool); dos.writeChar(ch); dos.writeUTF(str); //유니코드의 utf-8형식으로 문자열을 출력하는 메소드 //utf형식은 각 문자의 표현을 위해 한바이트 사용하는지, //두바이트 또는 세바이트 차지하는지 알아내어 // ACII문자는 1바이트로, 그리스어, 히브리어, 아랍어 등의 // 문자는 2바이트로, 그외의 문자는 3바이트로 표현된다. System.out.println("총:" +dos.size()+"바이트 썼음"); dos.flush(); dos.close(); DataInputStream dis = new DataInputStream(new FileInputStream(sourcefile)); //test.txt 읽기 System.out.println("읽어 올 수 있는 바이트 수:"+dis.available()); byte b2 = dis.readByte(); System.out.println(b2); int n = dis.read(arr,0,arr.length); //n: 바이트수 for (byte bt: arr) System.out.println((char)bt); boolean res=dis.readBoolean(); System.out.println(res); char ch2=dis.readChar(); System.out.println(ch2); String str2=dis.readUTF(); System.out.println(str2); dis.close(); } }
'Java > I_O' 카테고리의 다른 글
File class(dir 출력) (0) | 2011.12.10 |
---|---|
File class (0) | 2011.12.10 |
File Input/Output Stream (0) | 2011.12.09 |
File Input Stream (0) | 2011.12.09 |
InputStream과 OutputStream (0) | 2011.11.30 |