将实时数据写入文件

时间:2013-05-15 12:02:39

标签: java file io bufferedwriter

如何用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时,它包含一行数据。我每次打开它时都会有一个不同的数据,但只有一行,它不会将新数据附加到文件中。

请在我出错的地方帮助我。

3 个答案:

答案 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来了解方法和类的方法和方法总是很好的方法。