관리 메뉴

취미개발 블로그와 마음수양

객체 리스트 파일로 쓰기 - 테스트 데이터를 할 일이 있어서 좀.. 음. 본문

FrameWork_ETC/Spring

객체 리스트 파일로 쓰기 - 테스트 데이터를 할 일이 있어서 좀.. 음.

아라한사 2018. 12. 22. 14:49

참고

https://qkrrudtjr954.github.io/java/2017/11/13/file-write.html

http://woowabros.github.io/experience/2017/10/17/java-serialize.html



@Test
public void objectStreamTest() throws Exception{
List<?> timeInfoList = repository.findAllByOrderByDateTimeAsc();

byte[] serializedMember;
try (ByteArrayOutputStream baos = new ByteArrayOutputStream()) {
try (ObjectOutputStream oos = new ObjectOutputStream(baos)) {
oos.writeObject(timeInfoList);
// serializedMember -> 직렬화된 member 객체
serializedMember = baos.toByteArray();
}
}
// 바이트 배열로 생성된 직렬화 데이터를 base64로 변환
String s = Base64.getEncoder().encodeToString(serializedMember);
System.out.println(s);

serializedMember = Base64.getDecoder().decode(s);
try (ByteArrayInputStream bais = new ByteArrayInputStream(serializedMember)) {
try (ObjectInputStream ois = new ObjectInputStream(bais)) {
// 역직렬화된 Member 객체를 읽어온다.
Object objectMember = ois.readObject();
List<StockTimeInfo> stockTimeInfos = (List<StockTimeInfo>) objectMember;
System.out.println(stockTimeInfos);
}
}

try (FileWriter fw = new FileWriter(new File("filename.data"));
BufferedWriter bw = new BufferedWriter(fw)) {
bw.write(s);
}
}