java - 如何使用 PrintWriter 打印多行输入以保存在文本文件中?代码里面

标签 java logging text printwriter

我这里有一段代码,我将使用它作为我的 Java 服务器的日志记录。 这似乎在单行输入中工作正常。但是当我输入多行时。例如:

Hey there!
Hey More!

当我查看 PrintWriter 创建的文本文件时,它向我显示:

Hey there!Hey More!

我想在我的文本文件中看到的是:

Hey there!
Hey More!

这是我的代码:我不知道如何附加它。我正在考虑\n 但这不起作用。或者我的代码中是否缺少某些内容。请仔细检查,你将对我有很大的帮助!谢谢!

try
            {
                clientSocket = serverSocket.accept(); // accept the client connection
                inputStreamReader = new InputStreamReader(clientSocket.getInputStream());
                bufferedReader = new BufferedReader(inputStreamReader); // get the client message
                DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
                Calendar cal = Calendar.getInstance();
                StringBuilder str =new StringBuilder();
                StringBuilder abc =new StringBuilder();

                while ((message = bufferedReader.readLine()) != null) 

                {
                    abc.append("Message from " + message + " at " + dateFormat.format(cal.getTime())+"/n");
                    System.out.println("Message from " + message + " at " + dateFormat.format(cal.getTime()));
                    str.append(message+"\n");



                }
                PrintWriter out= new PrintWriter(new BufferedWriter(new FileWriter("C:/god.txt", true)));
                out.println(abc);
                out.close (); 
                JOptionPane.showMessageDialog(null, str);


                inputStreamReader.close();
                clientSocket.close();

            } catch (IOException ex)
            {
                System.out.println("Problem in message reading");
            }

最佳答案

BufferedWriter 有一个 newLine 方法。你可能应该使用相同的

String line = new String();    
BufferedWriter writer= nnew BufferedWriter(new FileWriter("C:/god.txt", true));
    while ((message = bufferedReader.readLine()) != null) 
    {
      line = "Message from " + message + " at " + dateFormat.format(cal.getTime());
      System.out.println("Message from " + message + " at " + dateFormat.format(cal.getTime()));
      writer.write(line);
      writer.newLine();
     }
PrintWriter out= new PrintWriter(writer);

关于java - 如何使用 PrintWriter 打印多行输入以保存在文本文件中?代码里面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19012203/

相关文章:

mysql - 如何记录 MySQL 查询?

java - 确保在 logback 中应用程序关闭之前发送错误 SMTP

java - 如何最好地将二进制文件从 Android 发送到 PC 上的 Python 脚本?

java - 从图库中选择的图像出现 Kotlin 错误

performance - 人们可以使用分析器,但为什么不直接停止程序呢?

php - 使用 symfony2 和 twig 创建文件文本

java - 从 Java 生成动态 Excel

java - 我的应用程序刚刚崩溃,如何获取崩溃日志?

java - 将字符串转换为文本 (Java Hadoop)

mysql - "select like"找到文本行