gpt4 book ai didi

java - 写入文本文件时遇到问题

转载 作者:行者123 更新时间:2023-12-01 19:04:43 25 4
gpt4 key购买 nike

我正在使用 FileWriter 类在 Java 中编写文本文件。

“\n”不起作用,因此为了克服这个问题,我使用了 BufferedWriter 类及其方法 newLine()。它帮助我进入下一行,但可惜的是,它总是继续修改我以前的文件。我希望每次运行程序时都会生成一个新文件!

请有人在这方面帮助我。为什么“\n”不起作用?我的问题可能的解决方案是什么?

FileWriter write = new FileWriter ("D:/final project/report.txt", true);
BufferedWriter bufferedWriter = new BufferedWriter (write);

bufferedWriter.write("Current Time : " + hour + ":"+ minute + ":" + second + " " + am_pm);
bufferedWriter.newLine();
bufferedWriter.write("Current Date : " + date + "/"+ (month+1) + "/" + year + " d/m/y ");
bufferedWriter.newLine();

最佳答案

这里确实有两个完全正交的问题......

I want every time when I run my program a new file to be generated!

目前,这就是您创建 FileWriter 的方式:

new FileWriter ("D:/final project/report.txt", true);

这是使用 constructor overload with an append parameter ,您将其设置为 true...建议您想要附加到现有文件

如果您不想附加到现有文件,为什么要为该参数指定true?要么指定 false,要么只使用没有该参数的重载,并默认覆盖该文件。

就我个人而言,我强烈建议不要直接使用 FileWriter - 我会使用包裹在 OutputStreamWriter 中的 FileOutputStream,以便您可以指定编码。否则它将使用平台默认编码,在我看来这并不是一个好主意。 (就我个人而言,当我可以选择时,我倾向于使用 UTF-8。)

Why is that "\n" not working?

它正在将 \n 字符 (U+000A) 写入文件。但无论您使用什么读取该文件,都可能不会将其视为换行符 - 因为 Windows 上的换行符通常是 \r\nBufferedWriter.newLine() 将使用平台默认换行符,这就是它起作用的原因。

关于java - 写入文本文件时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10546919/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com