2017-08-25 6 views
0

文書のXMLテキストをBufferedReaderを使用して文字列として取得します。 IOを使って同じXML文字列を別のXMLファイルに書き込もうとしましたが、できません。私は次のemployee.xmlファイルを持っています。XMLファイルに文字列を直接挿入することができます

<employee id="1" xmlns=""> 
    <firstname>James</firstname> 
    <lastname>Harley</lastname> 
    <email>[email protected]</email> 
    <department>Human Resources</department> 
    <salary>1000</salary> 
</employee> 

<employee id="2" xmlns=""> 
    <firstname>John</firstname> 
    <lastname>May</lastname> 
    <email>[email protected]</email> 
    <department>Logistics</department> 
    <salary>400</salary> 
</employee> 

私はこの方法ではうまく機能したXMLファイルを読み込むしようとしました。

private static ArrayList<String> getXMLLines(String xmlFile) { 
    String line; 
    ArrayList<String> lines=new ArrayList<String>(); 

    try (BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(xmlFile),"ISO-8859-1"))) { 
     br.readLine(); 
     while ((line = br.readLine()) != null) { 
     if(line.contains("xmlns=\"\"")){ 
       System.out.println(line); 
       line=line.replace("xmlns=\"\"",""); 
       System.out.println(line); 
      } 

      lines.add(line); 
     } 


    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    return lines; 
} 

私の問題は、これらの文字列をXMLファイルに書き込むことです。これらの文字列をXMLファイルに書き込むにはどうすればよいですか?

+0

基本的には、employees.xmlファイルの内容を別のXMLファイルにコピーするか、作成しているXMLテキストをファイルに書き込むだけです。 –

+0

このArrayListにXMLタグを含む文字列があります。ArrayList lines = new ArrayList ();.今、これらの文字列をXMLファイルに書きたいと思います。 – islamuddin

+0

[Files.write](https://docs.oracle.com/javase/8/docs/api/java/nio/file/Files.html#write-java.nio.file.Path-java)を使用しないでください。 lang.Iterable-java.nio.file.OpenOption ...-)? 'Files.write(Paths.get(" data.xml ")、行)'のように。 – VGR

答えて

-1

この方法でIOUtils.javaクラスを作成します。

public static void writeToFile (String filePath, String content) { 

    File file = new File (filePath); 

    try { 
     FileOutputStream fos = new FileOutputStream (file); 

     PrintWriter pw  = new PrintWriter (f); 
     pw.println (content); 
     pw.flush(); 

     closeQuietly (pw, f); 

    } catch (FileNotFoundException e) { 
     e.printStackTrace(); 
    } 
} 

public static void closeQuietly (Closeable... closeables) { 
    if (closeables == null) { 
     return; 
    } 

    if (closeables.length == 0) { 
     return; 
    } 

    for (Closeable closeable : closeables) { 
     try { 
      closeable.close(); 
     } catch (IOException e) { 
     } 
    } 
} 

を次に、あなたのコード内で:

IOUtils.writeToFile ("the_path_to_myFile.xml", myTextLines); 

を私はなぜあなたは、このためのListを使用しているかわかりません。代わりにStringBuilderの使用を検討してください。

関連する問題