如何将邮件内容保存到文本文件

时间:2013-06-25 16:06:10

标签: android

我有一个应用程序可以读取传入和传出的短信。 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();
}

使用此代码我无法一次性保存所有字符串。收到新邮件时,将从文本文件中删除之前的邮件,并插入新的信息。请帮忙。

2 个答案:

答案 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);

如果您还有其他需要,或者我误解了您的需求,请询问