2014-09-27 3 views
0

writeObject()를 사용하여 디스크에 직렬화 된 100 개의 요소가있는 목록 개체가 있다고 가정합니다. 이제 다른 사람은 모두 디스크에 보관하면서 목록의 처음 10 개 요소 만 읽으려면 어떻게해야합니까? 내 지식에 따라 readObject()는 전체 목록을 메모리로 읽습니다. 그래서 주변에 어떤 문제가 있습니까? 정보 retieval에서 SPIMI 인덱싱 구현에 사용하고 싶습니다. 사전 :직렬화 된 파일을 읽는 동안 다른 멤버를 메모리에 유지하면서 목록의 처음 몇 개 요소 가져 오기

+0

나는 그것이 가능하다고 생각하지 않지만 나는 더 경험 많은 사람들이 당신에게 말하게하는 것을 선호한다. – Dici

답변

3

에서

고맙습니다 나는 당신이해야 할 것은 디스크에 순차적으로 목록에있는 개체를 직렬화라고 생각합니다. 그렇게하면 처음 몇 권을 얻어 독서를 그만 둘 수 있습니다. 전체 목록을 직렬화하지 마십시오.

+0

정확히 내 답변을 빨리 upvote. :-) –

0

여기 문제는 아이디어 자체 또는 저장 프로그램의 초기 디자인이라고 생각합니다. 당신이 묻는 것을 할 수있는 방법은 없습니다 (실제로는 아는 것입니다). 사실 당신이 직접 답해주었습니다. readObject()는 객체 전체를 읽고 나중에 객체로 반환합니다. .

그래서 처음에는 각 객체를 자체적으로 직렬화하는 것과 같은 방식으로 변경하는 것이 좋습니다. 데이터베이스를 사용하는 것을 고려해보십시오.하지만 100 개의 요소에 과도한 부담이 될 수도 있습니다. 더 이상 PC 용으로는 더 이상 쓸모없는 요소입니다. 요소가 그다지 큰 데이터 구조가 아니라면 실제로 아무런 의미가 없습니다.

관련 문제