java - 使用 BufferedReader 计算文件总行数
问题描述
所以基本上,我试图将从文件中保存的几个数据保存到一个数组中,因此我需要以某种方式获得数组必须初始化的大小。
有没有办法在不创建另一个循环来计算所有行直到读取行为空的情况下做到这一点?因为这需要稍后重新打开文件,这不是非常理想的。我试图让它尽可能紧凑。
另外,不,我不能使用 ArrayLists。
解决方案
我会选择一个 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);
但不要指望巨大的表现。
推荐阅读
- java - FileProvider 错误 - 无法找到包含的已配置根
- php - Symfony 4 动态子域路由和 Nginx 配置
- rest - 想要使用 ra-data-json-server 将增量发送到服务器
- python - 测试用户输入的嵌套字典并检索直接相关的信息
- angular - 模板不知道窗口中更新的变量的变化
- html - 使用css隐藏rhandsontable中的列
- java - 在 Element 内的 tagName 之前、之间和之后包装内容
- java - 从 sql server 更改为 postgreSQL db,并将 csv 文件复制到 db
- php - 如果在标题中使用如何缩短wordpress post url文本长度?
- kendo-ui - Kendo TreeView - 无限滚动加载项目