2013-02-22 55 views
-1

我想将一些数据写入.txt文件。在运行程序时写入数值

 public void writeToFile(String filename) { 

    try { 

     //Construct the BufferedWriter object 
     bufferedWriter = new BufferedWriter(new FileWriter(filename)); 

     //Start writing to the output stream 
     bufferedWriter.write("first value : " + firstValue); 
     bufferedWriter.newLine(); 

    } catch (FileNotFoundException ex) { 
     ex.printStackTrace(); 
    } catch (IOException ex) { 
     ex.printStackTrace(); 
    } finally { 
     //Close the BufferedWriter 
     try { 

      if (bufferedWriter != null) { 
       bufferedWriter.flush(); 
       bufferedWriter.close(); 
      } 
     } catch (IOException ex) { 
      ex.printStackTrace(); 
     } 
    } 
} 

我使用此代码,但问题是,它会不断覆盖第一行(我认为)。 有没有人有一个想法,我可以解决这个问题? 我从串口读取一个50ms的值,并且不想写这个。 (每个值分开一行)

它应该写入值,直到我关闭程序。

问候

回答

1

尝试改变行:

bufferedWriter = new BufferedWriter(new FileWriter(filename)); 

要:

bufferedWriter = new BufferedWriter(new FileWriter(filename, true)); 

我将在追加模式下打开FILEWRITE,它是,它会在文件中添加内容,而不是覆盖它。

1

打开作家是这样的:

bufferedWriter = new BufferedWriter(new FileWriter(filename, true)); 

这应该打开文件进行追加。见javadoc