2013-10-17 17 views
0

我想創建一個csv文件在這個數據存儲爲鍵值對和值正確顯示。如何顯示鍵的字段(值)的頭作爲csv文件中的標題顯示鍵

for (Map<String, String> map : test) {   
     Iterator iterator = map.entrySet().iterator(); 
     while (iterator.hasNext()) { 
      Map.Entry<String,String> mapEntry = (Map.Entry<String,String>) iterator.next(); 
      //System.out.println("key: " + mapEntry.getKey() + ", value:" + mapEntry.getValue()); 

      writer.append(mapEntry.getValue()); 
      writer.append(","); 
      iterator.remove(); 
     } 
     writer.append("\n"); 
     } 
     writer.flush(); 
     writer.close(); 
    } 
+0

「如何將鍵顯示爲字段(值)的標題」 - 您在特定標題中始終有一個值。這種情況下,首先顯示所有的鍵,然後在下一行顯示值。 (邏輯結論)。 – CHowdappaM

+0

@CHowdappaM我知道邏輯,但我不知道如何執行 – Aanshi

+0

試試這個:http://viralpatel.net/blogs/java-read-write-cs-file/ –

回答

0

嘗試在for循環這樣的代碼:

Collection<String> kys = map.keySet(); 
      Collection<String> vls = map.values(); 
      for (String k : kys) { 
       writer.append(k); 
        writer.append(","); 
      } 
      writer.append("\n"); 

      for (String v : vls) { 
       writer.append(v); 
        writer.append(","); 
      } 

      writer.flush(); 
      writer.close(); 
+0

感謝您的回覆。但我在while循環中提到了mapEntry。如果我在外面提到它,那麼結果文件是空的 – Aanshi

+0

通過我可以操縱它的完整代碼!否則調試它。 – CHowdappaM

0

尋找這樣的事情?

package com.stackoverflow.csv; 

import java.util.HashMap; 
import java.util.Iterator; 
import java.util.Map; 

public class CreateFile { 

    public static final String LINE_BREAK = "\n"; 
    public static final String QUOTE = "\""; 
    private final StringBuilder sb; 
    public CreateFile(Map<String, String> table) { 
     sb = new StringBuilder(); 
     Iterator<String> keys = table.keySet().iterator(); 

     while (keys.hasNext()){ 
      sb.append(QUOTE + keys.next() + QUOTE); 
      if (keys.hasNext()) 
       sb.append(", "); 
     } 
     sb.append(LINE_BREAK); 
     Iterator<String> entries = table.values().iterator(); 
     while (entries.hasNext()) { 
      sb.append(QUOTE + entries.next() + QUOTE); 
      if (entries.hasNext()) 
       sb.append(", "); 
     } 
    } 
    public String getCSV() { 
     return sb.toString(); 
    } 

    public static void main(String[] args) { 
     HashMap<String,String> map = new HashMap<>(); 
     map.put("KEY1", "VALUE1"); 
     map.put("KEY2", "VALUE2"); 
     map.put("KEY3", "VALUE3"); 
     map.put("KEY4", "VALUE4"); 
     map.put("KEY5", "VALUE5"); 
     map.put("KEY6", "VALUE6"); 
     map.put("KEY7", "VALUE7"); 
     map.put("KEY8", "VALUE8"); 
     map.put("KEY9", "VALUE9"); 
     map.put("KEY10", "VALUE10"); 
     CreateFile app = new CreateFile(map); 
     System.out.println(app.getCSV()); 
    } 
} 
+0

嘿,它幫助我很多。我只是想顯示的關鍵只有一個 – Aanshi

+0

請詳細說明。沒有理解你的評論。 – AppX

+0

我的意思是我想在我的示例中只顯示一次密鑰im試圖將xml數據顯示到csv文件中。因此,有5條記錄,並且在每條記錄中都有如此多的屬性。因此,我想創建屬性標題以便它只顯示標題一次不會將每個記錄顯示爲鍵值。我希望我解釋得很好 – Aanshi