我正在使用以下代码将日志数据保存到文件中。 但是,每次拨打新电话时,旧内容都会消失.....
我无法弄清楚问题是什么......
public void writeToFile(String fileName, String textToWrite) {
FileOutputStream fOut = null;
try {
File root = new File(Environment.getExternalStorageDirectory() , fileName);
if (! root.exists()){
root.createNewFile();
}
fOut = new FileOutputStream(root);
OutputStreamWriter myOutWriter = new OutputStreamWriter(fOut);
myOutWriter.append(textToWrite);
myOutWriter.flush();
myOutWriter.close();
}
catch (Exception e) {
new MailService().mailMessage(e.toString());
}
finally{
if(fOut != null){
try{
fOut.close();
}
catch(Exception ex){
}
}
}
}
答案 0 :(得分:3)
您需要将第二个参数boolean true
传递给FileOutputStream
构造函数,该构造函数指示文件将以追加模式而不是写入模式打开。
FileOutputStream out=new FileOutputStream("myfile");
每次执行上述代码时,它都会以写入模式打开文件,以便新内容覆盖旧内容。但是,FileOutputStream
构造函数接受第二个参数,该参数是boolean
,指示是否以追加模式打开文件。
FileOutputStream out=new FileOutputStream("myfile",true);
以上代码将以附加模式打开文件,以便将新内容附加到旧内容的末尾。
要了解有关FileOutputStream
构造函数的更多信息,请参阅this。