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

尝试使用java创建文本文件日志,java,Java,我对编程和尝试创建日志文件不熟悉。我写的代码用于将消息和时间发送到文本文件。但每次我发送另一条消息时,它都会记录上一条消息。我想要一个信息和时间的列表,而不是最新的 public void run () { String message; try { while ((message = reader.readLine()) != null){ System.out.println( "You voted "

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

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

Change
BufferedWriter out=new BufferedWriter(new FileWriter(“test.txt”)


您正在通过循环重新初始化
BufferedWriter
。将代码块移到循环的外部。或者,您可以将此构造用于
FileWriter
,其中:


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

您应该查看:

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


祝你好运

查看java.util.logging.Logger,当您掌握了其中的诀窍时,请检查slf4jUse日志库(例如log4j),不要忘记将close语句放入
finally
块中;
BufferedWriter out = new BufferedWriter(new FileWriter("test.txt", true)); 
               // true means append to the end of the file
BufferedWriter out = new BufferedWriter(new FileWriter("test.txt", true));