2013-07-24 66 views
4

我打算使用java創建CSV文件。以下是部分代碼:使用java創建CSV文件

try{ 

    FileWriter writer = new FileWriter(sFileName); 

    writer.append("Title"); 
    for(StoredArticle sa3:historyFile.keySet()){ 
     for(String k3:sa3.getTimeAndPopularity().keySet()){ 
      writer.append(','); 
      writer.append(k3); 
     } 
    } 
    writer.append('\n'); 

問題是我成功創建了CSV文件。在for循環中,k3是格式爲2013/07/22 15:40:23.的時間,但秒數「23」無法顯示。其他人表現很好。有什麼問題請幫忙。

這是我的整個類

package uk.ac.ncl.fanyaoxia.createCSV; 

import java.io.FileWriter; 
import java.io.IOException; 
import java.util.HashMap; 
import java.util.Map; 

import uk.ac.ncl.fanyaoxia.monitor.MonitorRecentUpdates; 
import uk.ac.ncl.fanyaoxia.monitor.StoredArticle; 
import uk.ac.ncl.fanyaoxia.webpagefetch.ReadXml; 

public class CreateCSVFile { 
    private static Map < StoredArticle, ReadXml > historyFile; 

    public CreateCSVFile() { 
     historyFile = new HashMap < StoredArticle, ReadXml >(); 
    } 
    public void createFile() { 
     generateCsvFile("HistoryTable.csv"); 
    } 

    private static void generateCsvFile(String sFileName) { 
     MonitorRecentUpdates csvFile = new MonitorRecentUpdates(); 
     historyFile = csvFile.getMap(); 
     try { 

      FileWriter writer = new FileWriter(sFileName); 

      writer.append("Title"); 
      for (StoredArticle sa3: historyFile.keySet()) { 
       for (String k3: sa3.getTimeAndPopularity().keySet()) { 
        writer.append(','); 
        writer.append(k3); 
       } 
      } 
      writer.append('\n'); 

      for (StoredArticle sa3: historyFile.keySet()) { 
       writer.append(sa3.getStoredTitle()); 
       for (String k3: sa3.getTimeAndPopularity().keySet()) { 
        writer.append(','); 
        writer.append(sa3.getTimeAndPopularity().get(k3).toString()); 
       } 
       writer.append('\n'); 
      } 
      writer.flush(); 
      writer.close(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 
} 
+5

爲什麼不使用的一個[可用CSV庫(http://stackoverflow.com/questions/101100/csv- API換JAVA)? – assylias

+1

首先,您必須檢查(或至少提供)您收藏的內容。如果您將時間打印到控制檯,它是否顯示正確? – Martin

+2

@assylias因爲csv非常簡單,所以不需要依賴於外部庫lib,您必須檢查許可條件。 Wrting一個「,」和一個新的行,這就是你所需要的所有CSV – AlexWien

回答

3

的秒的輸出中由代碼如預期的代碼。它們在文本編輯器中可見。

它們只是在電子表格應用程序MS Excel中不可見。一個可能的原因是列寬太小。

[這個答案總結了OP和我上面之間的對話的結果。]