2014-10-01 3 views
0

디렉토리가 다른 오브젝트 파일로 채워진 경우 매번 새로운 스트림을 열지 않고도 해당 파일을 내 어플리케이션에 입력 할 수 있습니까? 현재 ObjectInputStream을 사용하고 있지만 IO의 다른 형식을 사용해도 괜찮습니다.단일 스트림으로 디렉토리의 모든 오브젝트 파일 읽기

예를 들어 내 하드 드라이브에 직접 객체를 저장 한 경우 (각각 자신의 파일 : name.user) 객체를 모두 동일한 스트림을 사용하여로드 할 수있는 방법이 있습니까? 아니면 각각의 개별 파일에 새로운 File 개체가 필요한지 알 수 없습니까? 이 문제를 해결할 방법이 있습니까?

+0

오브젝트 파일이란 무엇입니까? (ObjectInputStream을 사용하지 않는 경우) – aioobe

+0

@aioobe 내 하드 드라이브에 파일 형식의 직렬화 된 오브젝트 –

답변

2

각 파일은 자체 스트림을 필요로합니다. 그럴 수있는 방법은 없습니다. 그러나 이것이 당신을 위해 당신을 위해 당신 자신의 InputStream을 생성하는 것을 멈추게하지 않고, 하나의 스트림에서 모든 것을 읽을 수 있도록합니다.

CompoundObjectInputStream 등에서 읽으려고하면 아직 처리되지 않은 파일이 더 있는지 확인한 다음 다른 스트림을 사용하는 경우 파일을 열어서 데이터를 통해. 해당 디렉토리에 더 이상 파일이없는 지점에 도달하면 CompoundObjectInputStream은 스트림의 끝을 나타냅니다.

+0

이것이 내가 원했던 것입니다. 이를 위해 하나의 스트림 만 필요합니다. 나는 지금 "마스터"스트림을 고수해야 겠어. –

1

아니요, 없습니다. 각 실제 파일에는 자체 FileInputStream, FileChannel 또는 기타 해당 native 접근자가 필요합니다.

File은 실제 파일에 대한 직접 링크가 없으며 단지 추상 경로 이름입니다.

관련 문제