【问题标题】:Write a huge array list (200000 entries) to a text file java将一个巨大的数组列表(200000 个条目)写入文本文件 java
【发布时间】:2015-07-26 03:57:07
【问题描述】:

我需要将包含 200000 个条目的 arrayList 的所有条目写入文本文件。我已经坚持了它,但我想要一个可编辑的简单文本文件而不是对象转储。我使用了许多方法,但由于某种原因,它只写了大约 1/4 的列表。我使用过 FileWriter、PrintStream、FileUtils。一切都将其切断 t 大约 1/4。任何人都可以告诉我我的实施或理解是否有错误,因为它是一个巨大的列表,我没有得到任何例外,最后如果有人可以请给我任何解决方案!对于之前没有代码的询问方式,我深表歉意。以下是我到目前为止尝试过的代码:

List<String> readList;

Writer writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("absolute/path/demoTest.txt"), "utf-8"));

        for (String entry : readList) {

            writer.write(entry);
            writer.write("\n");
        }
        writer.close();

下一步:

FileWriter writer = new FileWriter("absolute/path/demoTest.txt"); 
for (String entry : readList) {

            writer.write(entry);
            writer.write("\n");
        }
        writer.close();

下一个:

PrintStream out = new PrintStream(new FileOutputStream("absolute/path/demoTest.txt"));

最后:

FileUtils.writeLines(new File("absolute/path/demoTest.txt"), readList);

所以就像我说的有 200000 个条目,但我只得到输出文本文件中总条目的 1/4。如果数组是这样的: 1
2
3
...
200000
输出文件显示如下内容:
1
2
3
...
50000

【问题讨论】:

  • "如果我的实现有错误"在哪里?
  • 寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。
  • 确保关闭输出文件。
  • 抱歉之前的提问方式。我包含了一些代码以及实际数组和输出数组的结构差异。感谢您抽出宝贵时间。
  • @PatriciaShanahan 是的,我确保每次都关闭它。谢谢

标签: java list file arraylist


【解决方案1】:

试试:

List<String> lines = // ...
Files.write(Paths.get("output.txt"), lines, StandardCharsets.UTF_8);

【讨论】:

  • 那么你的列表实际上比你想象的要少
  • 不,我确实检查了数组的大小。这就是为什么我能够做数学。我想知道记忆是否有可能在切断它的过程中发挥作用?
猜你喜欢
  • 1970-01-01
  • 2023-04-07
  • 1970-01-01
  • 1970-01-01
  • 2023-02-07
  • 2013-02-10
  • 1970-01-01
  • 2013-09-14
  • 1970-01-01
相关资源
最近更新 更多