尝试使用java创建文本文件日志

时间:2013-01-13 22:27:14

标签: 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

3 个答案:

答案 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}}