티스토리 뷰
자바 직렬화된 객체를 파일에 저장하는 방법
객체를 저장하는 방법에 대해 알아보겠습니다.
1) FileOutputStream 을 생성
2) ObjectOutputStream 을 생성
3) 객체를 저장.
4) ObjectOutputStream 을 클로즈
위에 4가지를 알고 있으시면 객체를 파일에 저장하는데 큰 무리가 없습니다.
} public class Test { @SuppressWarnings({ "rawtypes", "unchecked", "nls" }) userInfoMap.put("age", "43"); userInfoMap.put("bitrhday", "19330101"); |
컴파일하여 실행해보면 leesejin.ser 파일이 생성되 있습니다.
이번에는 역직렬화를 이용하여 객체를 복구해보겠습니다.
import java.io.*; public class Test { @SuppressWarnings({ "rawtypes", "unchecked", "nls" }) Iterator<String> it = hashMap.keySet().iterator(); String value = (String)hashMap.get(key); // 키에 해당되는 객체 꺼냄 } |
결과값
읽어온 객체의 type->class java.util.HashMap
address->서울서 서추구 방배동 34244
phone->010-9999-9999
TEL->02-324-2424
age->43
birthday->19330101
결과를 보시면 아시겠지만 직렬화된 파일에서 객체를 읽어서 해당 값들을 추출하는 소스입니다.
역직렬화 : 객체 복구
1) FileInputStream 을 생성
2) ObjectInputStream 생성
3) 객체를 읽습니다.
4) 객체를 캐스트 합니다.
5) ObjectInputStream 클로즈.
참고로 직렬화에 대해 자세히 알려면 열심히 배우는 수밖에 없습니다.
객체를 직렬화하여 파일에 저장할수가 있는데 이때 특정 객체를 제외시키고자 할때 필요한 키워드가 있습니다.
바로 transient 키워드입니다.
해당 키워드를 사용한객체는 직렬화가 되지 않습니다.
나중에 역직렬화로 복구할때 transient 키워드를 사용한 변수는 null값 혹은 기본값을 할당받게 됩니다.
readObject() 리턴 유형은 Object이므로 원래 유형으로 캐스트 해야 합니다.
HashMap hashMap = (HashMap)object;
위에 소스 보시면 아시겠지만 HashMap으로 저장한 객체이므로 다시 HashMap으로 캐스트 해주었습니다.
간단히 직렬화된 객체를 파일에 저장후 다시 읽어들이는 방법에 대해 알아봤습니다.
'JAVA(프로그래밍)' 카테고리의 다른 글
자바 기초 패키지 가져오는 방법 (0) | 2018.07.30 |
---|---|
java 네트워크 소켓 연결하기 (0) | 2018.07.29 |
java File Class 알아보기 (0) | 2018.07.28 |
java String 문자열 텍스트 파일에 저장하기 FileWriter (0) | 2018.07.26 |
java substring 문자열 자르기 (0) | 2018.07.26 |
- Total
- Today
- Yesterday
- java 네트워크
- java문자열자르기
- java File
- java wrapper class
- java substring
- java Enumeration
- 자바 랩퍼
- linkHashMap
- java join
- java tihs
- java문자열저장
- java 소켓
- java treemap
- 자바 패키지
- java배열
- File Class
- java 메모장
- java Properties
- 객체파일저장
- java LinkedHashMap
- 자바
- java StringBuffer
- Java
- java ArrayList
- java Vector
- java iterator
- java 노트패드
- java replaceAll
- java wrapper
- java텍스트파일저장
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |