我使用以下代码在文件中存储一些数据。 (mydata是用户输入的数据(双列表),而date_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中输入一些数据,则该文件仅包含上次日期的最后一个数据。我想保留所有数据。< / p>
答案 0 :(得分:0)
使用fos = new FileOutputStream(file, true);
将数据附加到文件而不是覆盖它。
答案 1 :(得分:0)
以附加模式打开fileoutputstream
fos = new FileOutputStream(file, true);