오늘 나는 자바 직렬화와 비 직렬화에서 이상한 행동을 보았다. (이해가 안 가기 때문에 "이상하다")Java가 발생할 수있는 디스크 공간 부족. io. EOFException
나는 리눅스 공유 디렉토리에서 객체를 직렬화하고 비 직렬화했다. 아무 문제없이 모든 작업을 직렬화하는 동안 동일한 파일을 deserialize하려고 시도하면 java. io. EOFException
이 발생합니다. 또한 deserialize는이 새로 생성 된 파일에 대해서만 실패했으며 그 디렉토리에있는 다른 모든 이전 파일들에 대해 작업하고있었습니다.
그래서 인터넷을 검색하여 디스크 공간 부족이이 오류의 원인 일 수 있다고 언급 한 스레드를 발견했습니다.
그래서 임시 파일을 정리하고 효과가있었습니다. 디스크 공간 부족이 직렬화가 아닌 직렬화에만 영향을 줄 수 있다는 것을 이해하지 못합니까?
나는 아파치 평민 SerializationUtils
클래스를 사용하고 있습니다. 다음은 직렬화 및 직렬화 코드입니다.
SerializationUtils. serialize(myObject, new FileOutputStream(new File(sharePath+FILEName) ;
MyObject object=SerializationUtils. deserialize(new FileInputStream(new File(sharePath+FILEName);
누군가가이 동작을 설명 할 수 있다면 정말 도움이 될 것입니다. 나는 SerializationUtils의 버그가 IOException을 일으킨다 고 생각한다.
감사
파일을 쓸 때 이전의'IOException'을 무시하지 않는 한 그렇게 할 수 없습니다. – EJP
손으로 직렬화를 수행하지 않으므로 IOException이 SerializationUtils에 의해 관리됩니다. 그것의 javadoc에. –
그래서 문제가 있거나 API 디자인이 좋지 않습니다. – EJP