2013-10-29 24 views
0

我有一個地圖的數組列表,我需要將每個地圖的關鍵字寫入由管道(|)分隔的文件中。下一行中下一個映射的鍵等等。我不熟悉文件操作。請幫我將地圖寫入java中的文件

編輯 - 對不起,不包括什麼,我已經做了,我也做了以下及通過線不寫一行,許多空行是其間

if(alPrdt.size()>0) 
{ 
    if (!file.exists()) { 
     System.out.println("no file. creating new file"); 
     file.createNewFile(); 
    } 
    fw = new FileWriter(file.getAbsoluteFile(),true); 
    bw = new BufferedWriter(fw); 
    //s.writeObject(alPrdt); 
    for(int i=0;i<alPrdt.size();i++) 
    { 
     String temp = null; 
     Map map=(Map) alPrdt.get(i); 
     Iterator it=map.entrySet().iterator(); 
     while (it.hasNext()) { 
      Map.Entry pairs = (Map.Entry)it.next(); 
      System.out.println("pairs:"+pairs.toString()); 
      if(pairs.getValue()==null) 
       temp = ""; 
      else 
       temp = pairs.getValue().toString(); 

      bw.write(temp); 
      bw.write("|"); 
      it.remove();// avoids a ConcurrentModificationException 
     } 
     bw.write("\n"); 

    } 
    bw.close(); 
} 
+4

您必須先嚐試並向我們展示遇到問題的位置。你不能只是在沒有至少第一次嘗試的情況下要求代碼。 –

+0

也許這有助於:http://commons.apache.org/proper/commons-io/apidocs/org/apache/commons/io/FileUtils.html btw你試過什麼? –

+0

向我們展示您的理解水平。 – MadConan

回答

1

如果你只想在鑰匙這個文件然後可能:

String pathToFile = "C:\\temp\\file.txt"; 
    try (BufferedWriter bw = new BufferedWriter(new FileWriter(pathToFile))) { 
     for (Map<String, String> map : mapList) { 
      Iterator<String> it = map.keySet().iterator(); 
      while (it.hasNext()) { 
       bw.write(it.next()); 
       if (it.hasNext()) { 
        bw.write("|"); 
       } 
       it.remove(); 
      } 
      bw.write(System.lineSeparator()); 
     } 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
1

Java 7中具有java.nio.file.Files轉換列表文件的形式列表項代表行:

Files.write(Paths.get("C:\\temp\\file.txt"), lines, StandardCharsets.UTF_8); 

其中linesList<String>

所以,(我相信),您可以通過提取鍵轉換容易List<Map>List<String>

希望它能幫助您