2014-09-13 4 views
-1

java.i에서 사용자가 선택한 알고리즘 유형에 따라 xml 파일의 요소를 정렬하려면 10 개의 XML 파일이 포함 된 xml 파일을 병합했습니다. 그래서 알고리즘의 첫 번째 사용자 선택 유형처럼 될 것입니다 그리고 사용자 want.how 내가 할 수있는 정렬 요소를 프로그램? PLS자바에서 xml 파일의 요소 정렬하기

여기

내가 XML 파일을

import java.io.BufferedReader; 
import java.io.BufferedWriter; 
import java.io.File; 
import java.io.FileInputStream; 
import java.io.FileWriter; 
import java.io.IOException; 
import java.io.InputStreamReader; 

public class Merge2 { 

public static void main(String[] args) { 
    String sourceFile1Path = "C:\\Users\\project\\Numbers1.xml"; 
    String sourceFile2Path = "C:\\Users\\project\\Numbers2.xml"; 
    String sourceFile3Path = "C:\\Users\\project\\Numbers3.xml"; 
    String sourceFile4Path = "C:\\Users\\project\\Numbers4.xml"; 
    String sourceFile5Path = "C:\\Users\\project\\Numbers5.xml"; 
    String sourceFile6Path = "C:\\Users\\project\\Numbers6.xml"; 
    String sourceFile7Path = "C:\\Users\\project\\Numbers7.xml"; 
    String sourceFile8Path = "C:\\Users\\project\\Numbers8.xml"; 
    String sourceFile9Path = "C:\\Users\\project\\Numbers9.xml"; 
    String sourceFile10Path = "C:\\Users\\project\\Numbers10.xml"; 

    String mergedFilePath = "C:\\Users\\project\\mergedXML.xml"; 

    File[] files = new File[10]; 
    files[0] = new File(sourceFile1Path); 
    files[1] = new File(sourceFile2Path); 
    files[2] = new File(sourceFile3Path); 
    files[3] = new File(sourceFile4Path); 
    files[4] = new File(sourceFile5Path); 
    files[5] = new File(sourceFile6Path); 
    files[6] = new File(sourceFile7Path); 
    files[7] = new File(sourceFile8Path); 
    files[8] = new File(sourceFile9Path); 
    files[9] = new File(sourceFile10Path); 


    File mergedFile = new File(mergedFilePath); 

    mergeFiles(files, mergedFile); 
} 
public static void mergeFiles(File[] files, File mergedFile) { 

    FileWriter fstream = null; 
    BufferedWriter out = null; 
    try { 
     fstream = new FileWriter(mergedFile, true); 
     out = new BufferedWriter(fstream); 
    } catch (IOException e1) { 
     e1.printStackTrace(); 
    } 

    for (File f : files) { 
     System.out.println("merging: " + f.getName()); 
     FileInputStream fis; 
     try { 
      fis = new FileInputStream(f); 
      BufferedReader in = new BufferedReader(new InputStreamReader(fis)); 

      String aLine; 
      while ((aLine = in.readLine()) != null) { 
       out.write(aLine); 
       out.newLine(); 
      } 

      in.close(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 

    try { 
     out.close(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 

} 

}

을 합병 내 병합 된 XML 파일 내가

처럼 보여주고 싶은
<numberList> 
<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<number index="1">770820</number> 
<number index="2">640903</number> 
<number index="3">997132</number> 
<number index="4">193504</number> 

아래처럼 시작 어떻게 나에게 도움이
<numberList> 
<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<number index="1">193504</number> 
<number index="2">640903</number> 
<number index="3">770820</number> 
<number index="4">997132</number> 
+0

코드 줄을 복사/붙여 넣기하는 대신 배열 (또는 모음)과 루프를 사용해야합니다. 그건 그렇고, 당신이 파일을 병합 후 무엇을하고 싶지 않아요. – Dici

+0

하지만 인덱스 부분을 변경하고 싶지 않아, 내가 어떻게 pls 할 수있는 보여줄 수 있습니까? – sezen

답변

0

나는 이해하지 못한다. 정렬 것은 그러나 당신이 아는 그냥 코드가 훨씬 더 간결 수 :

당신은 내가 내 대답을 완료 할 수 있습니다 병합 파일을 정렬에 대한 문제를 명확하게 설명하면
String pathTemplate = "C:\\Users\\project\\Numbers%d.xml"; 
String mergedFilePath = "C:\\Users\\project\\mergedXML.xml"; 
int nFiles   = 10; 
File[] files   = new File[nFiles]; 

for (int i=0 ; i<nFiles ; i++) 
    files[i] = new File(String.format(pathTemplate,i + 1)); 
//... 

.

+0

답장을 보내 주셔서 감사합니다, 나는 XML 파일이 위와 같이 시작하고 내가 원하는 것은 사용자가 알고리즘 유형을 선택한 다음 사용자가 알고리즘 유형을 선택하면 XML 파일의 요소가 선택한 알고리즘에 따라 정렬되고 버블 또는 기타를 표시하고 정렬 된 요소를 표시하는 것입니다. ,하지만 난 그 부분을 수정 couldnt : s – sezen

+0

그것은 어렵지 않다 ... 그냥 사용자에게 제안하고자하는 모든 정렬 알고리즘을 구현, ArrayList에 병합 된 파일의 모든 값을 검색, 정렬 및 출력 파일. 어떤 부분을 할 수 없습니다. – Dici

+0

은 ArrayList에서 병합 된 파일의 모든 값을 검색합니다. ( – sezen

관련 문제