我是编程和尝试创建日志文件的新手。我编写的代码用于将消息和时间发送到文本文件。但每次我发送另一条消息时,它都会记录上一条消息。我想要一个消息和时间列表,而不是最新消息。
public void run () {
String message;
try {
while ((message = reader.readLine()) != null){
System.out.println( "You voted " + message + " You the best") ;
BufferedWriter out = new BufferedWriter(new FileWriter("test.txt"));
out.append(message + "\n");
TimeZone tz = TimeZone.getTimeZone("UTC"); // or PST, MID, etc ...
Date now = new Date();
DateFormat df = new SimpleDateFormat (" yyyy.MM.dd hh:mm:ss ");
df.setTimeZone(tz);
String currentTime = df.format(now);
String timeStamp = new SimpleDateFormat().format( new Date() );
FileWriter aWriter = new FileWriter("test.txt", true);
aWriter.write(currentTime + " " + "\n");
aWriter.flush();
aWriter.close();
out.write(message);
out.close();
everyoneMessage(message);
} // close while
}catch(Exception ex) {ex .printStackTrace();}
} // close run
}// close inner class
答案 0 :(得分:1)
更改BufferedWriter out = new BufferedWriter(new FileWriter("test.txt"));
到
BufferedWriter out = new BufferedWriter(new FileWriter("test.txt", true));
// true means append to the end of the file
答案 1 :(得分:1)
最好通过log4j来记录java。 作为一个后端java程序员,我从来没有遇到需要实现记录器而不使用log4j的情况。
你应该看看: http://logging.apache.org/log4j/1.2/
在网上找到一些简单的教程。有无数的谷歌搜索。
祝你好运。答案 2 :(得分:0)
您正在通过循环重新初始化BufferedWriter
。将该代码块移动到循环外部。或者,您可以将此构造用于FileWriter
:
BufferedWriter out = new BufferedWriter(new FileWriter("test.txt", true));
{{1}}