我有一个应用程序可以读取传入和传出的短信。 Logcat成功显示收到并发送邮件。这是我的代码。
String[] columns = new String[]{"address", "date", "body", "type"};
String recipient = c.getString(c.getColumnIndex(columns[0]));
String date = c.getString(c.getColumnIndex(columns[1]));
String message = c.getString(c.getColumnIndex(columns[2]));
String type = c.getString(c.getColumnIndex(columns[3]));
Log.d("DetectOutgoingSMS", recipient + " , " + date + " , " + message + " , " +type);
现在我想将所有上述字符串保存到文本文件中。我尝试下面的代码将其写入文本文件。
try {
FileOutputStream fOut = openFileOutput("textfile.txt", MODE_PRIVATE);
OutputStreamWriter osw = new OutputStreamWriter(fOut);
//---write the string to the file---
osw.write(message);
osw.close();
//---display file saved message---
Toast.makeText(getBaseContext(), "File saved successfully!",
Toast.LENGTH_SHORT).show();
} catch (IOException ioe) {
ioe.printStackTrace();
}
使用此代码我无法一次性保存所有字符串。收到新邮件时,将从文本文件中删除之前的邮件,并插入新的信息。请帮忙。
答案 0 :(得分:1)
将MODE_PRIVATE更改为MODE_APPEND
答案 1 :(得分:0)
你想“保存”字符串,还是“写”字符串?
要“保存”您需要使用的字符串onPause()
或onSavedInstanceState()
。根据您的目标,网上有很多教程可以帮助您。
要一次“写”字符串就可以使用它。
String[] columns = new String[]{"address", "date", "body", "type"};
String recipient = c.getString(c.getColumnIndex(columns[0]));
String date = c.getString(c.getColumnIndex(columns[1]));
String message = c.getString(c.getColumnIndex(columns[2]));
String type = c.getString(c.getColumnIndex(columns[3]));
String all = ("OutgoingSMS: " + recipient + " , " + date + " , " + message + " , " +type);
然后替换此
osw.write(message);
用这个
osw.write(all);
如果您还有其他需要,或者我误解了您的需求,请询问