1

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

使用此代码,我无法一次性保存所有字符串。收到新消息时,从文本文件中删除以前的消息并插入新消息。请提供任何帮助。

4

2 回答 2

1

将 MODE_PRIVATE 更改为 MODE_APPEND

于 2013-06-25T16:17:07.830 回答
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);

如果您需要其他任何东西,或者我误解了您的需求,请询问

于 2013-06-25T16:56:41.053 回答