Java의 직렬화 및 역직렬화 정보
PHP中文网
PHP中文网 2017-05-27 17:41:47
0
1
959

1. 다음 코드는 2.log 파일을 직렬화하여 2.txt

에 저장합니다. 으아악

Deserialization:
ObjectInputStream() 사용
FileInputStream fis = new FileInputStream("D:/2.txt");
ObjectInputStream oin = new ObjectInputStream(fis);
oin.readObject();
오류: 스레드 "main에서 예외가 발생했습니다. " java.io.StreamCorruptedException: 잘못된 스트림 헤더: 3139322E
어떻게 처리하나요?
파일이 큰 경우 읽을 때 캐시를 추가하는 방법은 무엇인가요? 다니엘이 깨달아줬으면 좋겠어 씨엑시

PHP中文网
PHP中文网

认证0级讲师

모든 응답(1)
漂亮男人

문제는 ObjectInputStream으로 읽은 내용을 ObjectOutputStream으로 작성하여 생성해야 하기 때문입니다. 파일의 내용은 Java 직렬화의 사양 요구 사항을 준수해야 합니다. 직접 만든 바이트 배열은 사용할 수 없습니다.


protobuf는 XML과 마찬가지로 구조화된 데이터를 직렬화하는 유연하고 효율적이며 자동적인 방법이지만 더 작고 빠르며 간단합니다. 자신만의 데이터 구조를 정의한 다음 코드 생성기가 생성한 코드를 사용하여 이 데이터 구조를 읽고 쓸 수 있습니다. 프로그램을 재배포하지 않고도 데이터 구조를 업데이트할 수도 있습니다.

크기든 직렬화든 역직렬화 효율성이든 기본적으로 JAVA에서 제공하는 직렬화보다 몇 배는 더 좋지만, 단점은 조금 더 분명합니다. 조작하기 귀찮아

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿