首页 > 解决方案 > 使用 BufferedReader 计算文件总行数

问题描述

所以基本上,我试图将从文件中保存的几个数据保存到一个数组中,因此我需要以某种方式获得数组必须初始化的大小。

有没有办法在不创建另一个循环来计算所有行直到读取行为空的情况下做到这一点?因为这需要稍后重新打开文件,这不是非常理想的。我试图让它尽可能紧凑。

另外,不,我不能使用 ArrayLists。

标签: javaarraysbufferedreader

解决方案


我会选择一个 ArrayList,比如 Haroon 和 Hovercraft。

但是,如果它不是一个选项,为什么不:

// 1. Create a new Set of String
Set<String> stringSet = new HashSet<String>();
// 2. Loop through bufferedReader and add lines to set
for (String line = br.readLine(); line != null; line = br.readLine()) {
stringSet.add(line);
}
// 3. Copy set to a new array
int n = stringSet.size(); 
String array[] = new String[n]; 
array = stringSet.toArray(array);

但不要指望巨大的表现。


推荐阅读