2016-07-25 2 views
0

JFileChooser를 사용하여 여러 텍스트 파일을 선택하고 비교하고 싶습니다. 여러 파일을 선택할 수있는 코드는 내가 여러 개의 파일을 비교하는 파일 핸들을 어떻게 사용합니까JFileChooser를 사용하여 여러 텍스트 파일을 선택하고 비교하십시오.

JFileChooser chooser = new JFileChooser(); 
    chooser.setMultiSelectionEnabled(true); 
    Component frame = null; 
    chooser.showOpenDialog(frame); 
    File[] files = chooser.getSelectedFiles(); 

다음과 같다. 이 방법을 사용하여 여러 텍스트 파일을 비교할 수 있습니까? 여러 텍스트 파일이 있고 모든 파일의 내용이 일치하는지 확인하고 싶습니다. 내용이 정확히 같으면 MATCH가 표시되고 텍스트 파일이 다르면 FAIL이 내용의 차이와 함께 표시됩니다. 도와 주셔서 감사합니다

+0

무엇을 비교할 싶습니까? 텍스트 또는 단어? 질문에 좀 더 자세히 설명해주세요 ... –

+0

"비교"란 무엇을 의미합니까? 콘솔 (차이점이라고도 함)에 차이점 목록을 표시 하시겠습니까? side-by-side 비교 (Windows의 WinMerge 또는 Linux의 유사한 도구)를 표시 하시겠습니까? 이러한 작업 중 하나를 수행하기 위해 Java에 기본 제공되는 것은 없습니다. –

+0

내가 비교하고 싶은 것에 대한 간략한 설명이 추가되었습니다. 기본적으로 여러 텍스트 파일이 있고 모든 파일의 내용이 일치하는지 확인하고 싶습니다. 내용이 정확히 같으면 MATCH가 표시되고 텍스트 파일이 다르면 FAIL이 내용의 차이와 함께 표시됩니다. – sam

답변

0

사용 FileUtils

예를 들어 많은 :

for(int i=0; i<files.length-1; i++) 
    for(int j=i+1; j<files.length; j++) 
     if(FileUtils.contentEquals(files[i], files[j])) 
      System.out.println("file #" + i + " and file #" + j + " are identical."; 
     else 
      System.out.println("file #" + i + " and file #" + j + " are different."; 

예 # 2 - 당신이 this에 설명 된 기술을 사용할 수 있습니다 외부 라이브러리를 사용하지 않고 대답. 당신이 당신의 질문에 언급하지 않았기 때문에

for(int i=0; i<files.length-1; i++) { 
    for(int j=i+1; j<files.length; j++) { 
     byte[] f1 = Files.readAllBytes(files[i]); 
     byte[] f2 = Files.readAllBytes(files[j]); 

     if (Arrays.equals(f1, f2)) 
      System.out.println("file #" + i + " and file #" + j + " are identical."; 
     else 
      System.out.println("file #" + i + " and file #" + j + " are different."; 
    } 
} 

P.S는 : 나는 당신이 두 파일의 내용을 비교하고 그들이 같거나하지 있는지 확인하려는 여기에 가정.

+0

예 라만, 그게 내가하고 싶은 일입니다. 도와 주셔서 감사합니다. 그냥 쿼리, 작동하려면 특정 자바 버전이 필요합니까. FileUtil을 해결할 수 없습니다. 내가 마주보고있는 오류입니다. – sam

+0

안녕하세요 @ 샘 FileUtils를 가져 왔습니까? like this 'import org.apache.commons.io.FileUtils;' –

+0

eclipse가 그러한 가져 오기에 대한 제안을 제공하지 않기 때문에 별도로 ** org.apache.commons.io.jar **를 다운로드해야합니다. 지금. 나는 항아리 파일을 만들어 다른 멤버들에게도 배포해야하며 모든 사람들이 그 파일을 가지고 있는지 확신하지 못합니다. FileUtils 이외의 다른 방법이 있습니다. – sam

관련 문제