2013-01-13 64 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