从文件读取未知数量的元素到数组?

时间:2019-04-15 01:52:19

标签: java

正如标题所述,我正在尝试从文件中读取未知数量的元素到数组中。最简单的方法(教授希望我们避免使用她没有教过的东西)却有效的方法是什么?

我曾经考虑过要逐个读取和计数文件中的元素,然后在知道要使其大小后创建数组,然后将元素实际存储在其中。但这似乎效率不高。有更好的方法吗?

2 个答案:

答案 0 :(得分:3)

只有两种方法可以做到这一点:您建议的方法(先计数,然后读取),创建一个数组并希望它足够好,然后调整大小(如果不是,则调整大小),{{ 1}}会自动为您执行此操作。

哪个更好取决于您受时间还是内存的限制(通常两次读取文件比多次分配数组要慢得多)。

编辑:存在第三种方法,仅当文件中的每个记录具有固定宽度并且文件未压缩(或以任何其他会干扰内容布局的方式编码)时,该方法才可用:文件大小除以记录大小,这恰好是您必须分配的记录数。不幸的是,生活并不总是那么容易。 :)

答案 1 :(得分:0)

您可能还没有提到您的教授是否教过ArrayList,所以在这种情况下,我肯定会去ArrayList。 f ArrayList的唯一目的是处理这种情况。与阵列相比,动态内存之类的功能为ArrayList提供了一些优势。

您可以先计数,然后相应地创建数组。但这会很慢,为什么要重新发明轮子呢?

因此,您的方法应该是使用ArrayList读取元素,而只需使用ArrayList.add() ...