2016-01-16 5 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; 
    } 
} 

Я пишу в файл, который я позже прикрепить к электронной почте или отправить через BlueTooth, или просто оставить его в файле. Мой файл CSV (результаты гонки) и имя файла генерируется. Но вы можете адаптироваться для вашего использования.

+0

Спасибо, но что такое DataModel в списке Результаты = DataModel.get(). GetResults(); –

+0

DataModel в моем случае - синглтон, где я отслеживаю состояние моих вкладок и собираю результаты. Но у вас будет другой источник данных: ваша база данных. Я только предназначался для моего кода, чтобы помочь с созданием и записью файла. Я должен также упомянуть, что мой манифест должен был запросить разрешение на запись на SD-карту. – BryanT

+0

Да, спасибо, я просто задавался вопросом, будет ли это полезно для меня. –

Смежные вопросы