如何用Java编写实时数据到文件?
我正在尝试获取文本文件的实时Twitter提要。这是我写的代码:
public void onStatus(Status status)
{
User user = status.getUser();
BufferedWriter bufferedWriter = null;
try
{
bufferedWriter = new BufferedWriter(new FileWriter("c:\\twitterDumponFile.txt"));
String username = status.getUser().getScreenName();
bufferedWriter.write(username);
String profileLocation = user.getLocation();
bufferedWriter.write(profileLocation);
String content = status.getText();
bufferedWriter.write(content);
bufferedWriter.newLine();
}
catch (FileNotFoundException ex)
{
ex.printStackTrace();
}
catch (IOException ex)
{
ex.printStackTrace();
}
finally
{
//Closing the BufferedWriter
try
{
if (bufferedWriter != null)
{
bufferedWriter.flush();
bufferedWriter.close();
}
}
catch (IOException ex)
{
ex.printStackTrace();
}
}
}
当我打开文件twitterDumponFile.txt时,它包含一行数据。我每次打开它时都会有一个不同的数据,但只有一行,它不会将新数据附加到文件中。
请在我出错的地方帮助我。
答案 0 :(得分:3)
您需要在追加模式下打开FileWriter
。
替换
bufferedWriter = new BufferedWriter(new FileWriter("c:\\twitterDumponFile.txt"));
通过
bufferedWriter = new BufferedWriter(new FileWriter("c:\\twitterDumponFile.txt", true));
答案 1 :(得分:3)
FileWriter("c:\\twitterDumponFile.txt")
这不会将数据附加到文件中,它会从文件的开头写入,而是使用它:
FileWriter("c:\\twitterDumponFile.txt", true)
这将写入文件的末尾而不是开头。
请参阅FileWriter的文档。
答案 2 :(得分:0)
您正在覆盖文件中已有的数据,而不是附加它。
使用API链接了解如何追加而不是覆盖... 使用api来了解方法和类的方法和方法总是很好的方法。