0

我是编程新手并尝试创建日志文件。我编写的代码用于将消息和时间发送到文本文件。但每次我发送另一条消息时,它只会记录上一条消息。我想要一份消息和时间列表,而不是最新的。

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
4

3 回答 3

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
于 2013-01-13T22:29:31.403 回答
1

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

你应该检查一下: http: //logging.apache.org/log4j/1.2/

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

祝你好运。

于 2013-01-13T22:31:58.667 回答
0

您正在BufferedWriter通过循环重新初始化。将该代码块移到循环之外。或者,您可以使用此构造FileWriter允许将文件附加到

BufferedWriter out = new BufferedWriter(new FileWriter("test.txt", true));
于 2013-01-13T22:30:30.693 回答