-
[JAVA 39] 자바 File Stream / Data Stream ( I / O )Language/Java 2018. 4. 28. 22:11반응형123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475import java.io.*;class FDStream{ // File Data I/O StreamFileInputStream fis; FileOutputStream fos;DataInputStream dis; DataOutputStream dos;FDStream(){String text = "CIVIC.txt";try{fos = new FileOutputStream(text);dos = new DataOutputStream(fos);fis = new FileInputStream(text);dis = new DataInputStream(fis);writeM();readM();}catch(FileNotFoundException nfe){}catch(IOException ioe){}}void writeM() throws IOException{byte b = 10; // 1short s = 20; // 2char c= 'A'; // 2int i = 30; // 4long lo = 40; // 8float f = 50.0f; // 4double d = 60.0; // 8boolean flag = true; // 1String str = "CIVIC";dos.writeByte(b);dos.writeShort(s);dos.writeChar(c);dos.writeInt(i);dos.writeLong(lo);dos.writeFloat(f);dos.writeDouble(b);dos.writeBoolean(flag);dos.writeUTF(str);dos.flush();}void readM() throws IOException{byte b = dis.readByte();short s = dis.readShort();char c = dis.readChar();int i = dis.readInt();long lo = dis.readLong();float f = dis.readFloat();double d = dis.readDouble();boolean flag = dis.readBoolean();String str = dis.readUTF();System.out.println("b : " + b + "\ns : " + s + "\nc : " + c);System.out.println("i : " + i + "\nlo : " + lo);System.out.println("f : " + f + "\nd : " + d);System.out.println("flag : " + flag + "\nstr : " + str);}public static void main(String[] args){FDStream fds = new FDStream();}}
cs <참고>
- 직렬화(Serializable)가 가능한 객체만을 읽고 쓸 수 있음
( java.io.Serializable 상속받으면 직렬화 가능 )
- 객체에 포함된 속성과 속성값만 전송됨
( 메소드와 static 변수와 값은 전송되지 않음 )
- transient 제한자가 붙으면 해당 속성값은 전송되지 못함
- 멤버변수도 Serializable을 상속받은 것만 전송 가능
- 기본변수는 Serializable의 상속여부와 상관없이 전송가능
- Marked Interface
: Serializable 처럼 추상메소드와 상수가 없는 인터페이스
- 직렬화의 용어
- 마셜링 : 객체를 byte단위로 쪼개는 것
- 언마셜링 : 바이트단위의 객체를 원래대로 조립하는 것
반응형'Language > Java' 카테고리의 다른 글
[JAVA 41] 자바 네트워크 Network (0) 2018.04.29 [JAVA 40] 자바 ArrayReader 메모리의 객체에 I/O (0) 2018.04.29 [JAVA/자바] 디렉토리 복사 (0) 2018.04.28 [JAVA/자바] 파일 이동 ( 복사 / 삭제 ) (0) 2018.03.19 [JAVA/자바] 달력 ( Calendar ) 만들기 (3) 2018.03.17