0

次のコードを使用して、ファイルにデータを保存しています。(mydata はユーザーが入力するデータ (二重リスト) で、dates_Strings は日付を格納する文字列リストです)

public void savefunc(){

        SimpleDateFormat thedate = new SimpleDateFormat("dd/MM/yyyy",Locale.US); 
        Date d=new Date();  

        String formattedDate=thedate.format(d);
        Log.d("tag","format"+formattedDate);
        dates_Strings.add(formattedDate);



            double thedata=Double.parseDouble(value.getText().toString().trim()); 
            mydata.add(thedata);


      File sdCard = Environment.getExternalStorageDirectory();
        File directory = new File (sdCard, "MyFiles");
        directory.mkdirs();            
        File file = new File(directory, filename);

        FileOutputStream fos;


        try {
           fos = new FileOutputStream(file);

              BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(fos));
              for (int i=0;i<mydata.size();i++){
                    bw.write(mydata.get(i)+","+dates_Strings.get(i)+"\n");
              }
              value.setText("");
              bw.flush();
              bw.close();

            } catch (IOException e2) {
               e2.printStackTrace();
                }
    }

問題は、 06/05/13 にいくつかのデータを入力し、その後 07/05/13 にいくつかのデータを入力すると、ファイルには最後の日付の最後のデータのみが含まれることです.すべてのデータを保持したい.

4

2 に答える 2

0

fos = new FileOutputStream(file, true);ファイルを上書きする代わりに、ファイルにデータを追加するために使用します。

FileOutputStream ドキュメント

于 2013-05-06T21:07:46.180 に答える
0

ファイル出力ストリームを追加モードで開きます

 fos = new FileOutputStream(file, true);
于 2013-05-06T21:09:11.263 に答える