2016-01-16 57 views

回答

1

我只是在这里做了非常类似的事情。

private File saveResults() { 
    /* 
    * Write the results to a file. 
    */ 
    List<RiderResult> Results = DataModel.get().getResults(); 

    try { 
     if (!Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) { 
      Toast.makeText(SummaryFragment.this.getContext(), "Unable to access external storage.", 
        Toast.LENGTH_SHORT).show(); 
      return null; 
     } 

     /* 
     * Create a file folder in external storage. 
     */ 
     File csvDir = new File(
       Environment.getExternalStorageDirectory(), 
       "Android/data/ca.mydomain.myapp/results"); 
     if (!csvDir.exists()) 
      csvDir.mkdirs(); 

     /* 
     * Create a file in the folder, with today's date and time as the name. 
     */ 
     Date dateNow = new Date(); 
     SimpleDateFormat dateformatYYYYMMDD = new SimpleDateFormat("yyyyMMddHHmm"); 
     StringBuilder nowMMDDYYYY = new StringBuilder(dateformatYYYYMMDD.format(dateNow)); 

     File csvFile = new File(csvDir, "result_" + nowMMDDYYYY + ".csv"); 

     BufferedWriter bw = new BufferedWriter(new FileWriter(csvFile, false)); 

     /* 
     * Write a header row. 
     */ 
     bw.write("Finish Seq, Start Num,Clock Time, Actual Time\n"); 

     /* 
     * and a row for each result, comma separated 
     */ 
     for (int i = 0; i < Results.size(); i++) { 
      String row = new String(); 
      row = "" + (i + 1) + "," + Results.get(i).getStartNo() 
        + "," + Results.get(i).getClockTimeString() + "," 
        + Results.get(i).getActualTimeString() +"\n"; 
      bw.write(row); 
     } 

     bw.close(); 



     /* 
     * Return the File to the user - for use in a message or email attachment. 
     */ 
     return csvFile; 

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

我正在写一个文件,我稍后将其附加到电子邮件或通过蓝牙发送,或者将它留在文件上。我的文件是CSV(竞赛结果),并生成文件的名称。但你可以适应你的使用。

+0

谢谢,但DataModel在列表中代表什么结果= DataModel.get()。getResults(); –

+0

在我的情况下,DataModel是一个单例,我跟踪我的选项卡的状态并收集结果。但是您的数据将有不同的来源:数据库。 我只用于我的代码来帮助创建和编写文件。 我还应该提一下,我的清单必须请求写入SD卡的权限。 – BryanT

+0

是的,谢谢,我只是想知道它是否会对我有任何用处。 –