对于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方法应该足以表明我想要追加内容,对吗?
但事实并非如此;每次调用该过程时,文件仅包含最近一次调用的字符串。