Java fileWriter 没有将我的所有输出写入文件

标签 java eclipse csv

我正在尝试编写一个快速的java程序来获取csv并在SQL中创建插入语句。我不需要所有列,否则我将直接通过 csv 导入数据。当我实际写入文件时,我的特殊问题就出现了。编写器应该向文件输出 200 多行,但只输出了 190 行左右。我正在使用 eclipse,想知道 eclipse 是否在 IO 完成之前关闭程序,但我不知道如何检查。这是执行写入操作的代码:

  FileWriter fw = new FileWriter("CountriesOut.csv");
  CSVWriter writer = new CSVWriter(fw);
  for (int i = 0; i < line.size(); i++) {
      fw.write("INSERT INTO Country (CountryID, CountryName, CountryLocation, SummerFirstAppearance, WinterFirstAppearance) VALUES (");
      writer.writeNext(line.get(i));
      fw.write(");\n");
  }

我正在使用 openCSV 来解析和 Eclipse IDE。同样相关的是,它在行的中间切断,所以我知道它不仅仅是在循环期间的某个点终止。

最佳答案

I'm using eclipse and was wondering if eclipse shuts the program down before the IO is done

不。

问题是您的应用程序在写入所有已缓冲的数据之前退出。 (这很可能是在与 Eclipse 不同的 JVM 中,而 Eclipse 没有参与其中。)

在应用程序结束时,您应该调用fw.close()

此外,建议在 writeNext(...) 调用之后和以下 fw.write( ...)CSVWriter 的 javadoc 没有说明它是否进行任何缓冲。如果确实如此,则需要刷新才能使输出源正确“交错”。

关于Java fileWriter 没有将我的所有输出写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27140730/

相关文章:

java - 如何在 FitViewport View 中绘制 Sprite 。 libgdx

java - 需要帮助理解 for 循环

java - SpringBoot ListenableFuture中如何处理异常

java - Maven/Eclipse - 将项目更新到 Java7 搞砸了源文件夹

java - Eclipse 4.4 突然停止将堆栈跟踪打印到控制台

java - Eclipse 源代码错误

java - 运行 junit 测试时出现 ZipException

c# - 使用 csvhelper 进行映射/写入协助

java - 检查 csv 文件中的重复行 - java

python - 使用字符串日期对 pandas csv 列表进行排序