2013-01-13 40 views
0

我是新手编程并尝试创建日志文件。我编写的代码将信息和时间发送到文本文件。但每次我发送另一条消息时,它都会记录以前的消息。我想有一个不是最新的消息和时间列表。尝试使用java创建文本文件日志

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

为什么不使用log4j? – Gleeb

+1

查看java.util.logging.Logger,当你检出结果时,slf4j – BevynQ

+0

使用日志库(例如log4j),不要忘记将close语句放在'finally'块中; –

回答

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 
+0

我不知道,谢谢。 – user1899672

0

你通过循环重新初始化您BufferedWriter。将该代码块移到循环外部。或者,您可以使用此结构为FileWriter其中allows the file to be appended to

为Java
BufferedWriter out = new BufferedWriter(new FileWriter("test.txt", true)); 
1

记录通过log4j的最佳实践。 作为后端Java程序员,我从来没有遇到过需要实现记录器而不使用log4j的情况。

你应该看看: http://logging.apache.org/log4j/1.2/

,并在网上找到自己一些简单的教程。有无数的人用简单的谷歌搜索。

祝你好运。

+0

我会检查一下,谢谢。 – user1899672