如果文本文件不存在,则创建一个文本文件,如果使用 Java BufferedWriter,则将其追加到该文件
2022-09-03 12:15:55
对于枪手Java程序员来说,这可能非常简单,但是我(Java的相对新手)找不到一个简单,直接的例子来说明如何做到这一点,这意味着我将使用自我回答选项来希望防止其他人经历类似的挫折。
我需要将错误信息输出到一个简单的文本文件。这些操作将不频繁且很小(有时根本不需要),因此没有必要为文件保持流打开状态;文件在一个操作中被打开、写入和关闭。
与我遇到的其他“追加”问题不同,这个问题要求在 Java 应用程序运行中首次调用该方法时创建文件。在此之前,该文件将不存在。
原始代码是:
Path pathOfLog = Paths.get(gsOutputPathUsed + gsOutputFileName);
Charset charSetOfLog = Charset.forName("US-ASCII");
bwOfLog = Files.newBufferedWriter(pathOfLog, charSetOfLog);
bwOfLog.append(stringToWrite, 0, stringToWrite.length());
iReturn = stringToWrite.length();
bwOfLog.newLine();
bwOfLog.close();
以 gs 开头的变量是显示输出位置的预填充字符串变量,stringToWrite 是传入的参数。
因此,.append方法应该足以表明我想追加内容,对吧?
但事实并非如此。每次调用该过程时,文件都只包含最近调用的字符串。