【发布时间】:2016-12-28 16:38:49
【问题描述】:
我是 Java 新手。我想查找测试文件中的行数,以便可以将其用于数组大小。 我最初的想法是创建一个循环并更新一个 int 变量。像这样:
Scanner file = new Scanner(new File("data.text"));
int n = 0;
while(file.hasNextLine()) {
file.nextLine();
n++;
}
int[] array = new int[n];
这对我不起作用,因为扫描仪文件位于文本文件的末尾。 除非我关闭原始文件并创建一个新的扫描仪对象,否则我将无法读取文本文件。有没有更好的方法来执行此操作?
【问题讨论】:
-
使用
List<String>而不是数组。或者从一个固定的数组大小开始,并在需要时“调整”数组的大小(创建一个大小为两倍的数组,将旧内容复制到新数组)。这些是我脑海中浮现的想法。不可能“倒带”Scanner。 -
您不想读取文件两次,所以不要使用数组,而且您几乎肯定不想一开始就将整个文件读入内存。实际上,任何文本文件都可以一次处理一行,或者一次处理一个字符。
标签: java arrays file java.util.scanner