输出文件中的 BufferedWriter 文本截断
此 Java 程序将 CSV 数据转换为 SQL 命令,以便将数据插入表中。然而,它遇到了一个问题,即并非所有转换后的文本都出现在输出 SQL 文件中。
源文件包含超过 10,000 行数据,程序看似运行正常,但在生成SQL 语句。这种截断通常在处理大约 10,000 行后发生,留下数百行未读。
要解决此问题,需要关闭 OutputStream 以确保任何剩余数据写入文件:
out.close();
理解 Java 中的输出缓冲区
A BufferedWriter内部维护了一个缓冲区,用于临时存储写入的数据。默认缓冲区大小为 8192 个字符,可容纳数百行文本。当缓冲区达到容量或关闭流时,数据将刷新到底层文件。
在这种情况下,缓冲区大小足以容纳正在处理的所有数据行。但是,在刷新缓冲区之前,数据实际上并未写入文件。显式关闭 OutputStream 会触发刷新过程,确保所有转换后的文本都写入 SQL 文件。
以上是为什么我的 Java BufferedWriter 会截断 SQL 文件的输出?的详细内容。更多信息请关注PHP中文网其他相关文章!