저는 Java 전문가는 아니지만 프로그램에서 높은 처리량을 처리 할 것입니다. 그래서 나는 의견을 소싱하는 군중을 조금씩 할 것이라고 생각했습니다. 여기 상황이 있습니다.Java에서 일치하는 파일을 확인하는 효율적인 방법
java 프로세스가 처리 할 파일의 디렉토리를보고 있으면이 파일이 쌍을 이룹니다 (저장할 데이터 파일과 카탈로그화할 메타 정보가있는 XML 파일). 따라서 현재 파일 목록을 가져 와서 필요한 쌍둥이를 확인한 다음 처리해야합니다.
파일의 파일 이름은 항상 일치하며 파일 확장명 만 다릅니다. 예 : filename1.jpg filename1.xml filename2.jpg 나는 세 가지 옵션이 지금까지 생각했다가
filename2.xml.
- File.List (FileNamefilter)와
사용 FilenameFilter 파일 이름과 전체 파일이 .XML와없는 파일 목록을 생성하기 위해 1보다 큰
사용이 filenamefilters 인 경우 확인을 위해 전화 .xml, 비 XML 파일 목록을 ArrayList로 변환하고 Collections.binarySearch()를 호출하십시오.
.xml 확장명없이 모든 파일의 목록을 생성하고이 목록을 파일 이름을 기준으로 .xml 파일을 사용하는 키/값 쌍의 해시 맵 키로 사용하십시오. 그런 다음 해시 목록을 실행하고 처리하기 전에 .xml 트윈이 있는지 확인하십시오.
의견이 있으십니까?
편집은/지금이 FilenameFilters, XML 파일과하지 않는 하나를 나열 하나를 사용하여 진행을위한 해요 제안과 땜질보고 후
댓글. XML 파일 목록에서 xml 확장자가 제거되고 해시에 덤프됩니다. 그런 다음 데이터 파일 목록을 반복하고, hashlist.contains()를 호출하여 계속 진행하기 전에 해시 세트에 일치하는 항목이 있는지 확인합니다.
불완전한 파일 처리와 관련하여 아래에 언급 된 것과 같은 우려 사항이 있습니다. 나는이 의견에 말했듯이 그 쓰기 (새 파일, 편집을 위해 열 수 없습니다)
+1 : 명백한 해결책이 내 것보다 낫습니다. –