java - 如何处理获取相同文件的两个扫描仪

标签 java

我在处理两个并发 Scanner 对象时遇到问题。

一个扫描器用于确定文件中的行数,另一个扫描器用于获取行并将其添加到数组中。

原因是因为声明数组时我们需要数组的大小,这就是我使用第一个扫描器的原因。

我没有收到任何错误,只是出现一个空白控制台。

File file = new File("E:\\"+fileName);
Scanner inputSize = new Scanner(file);
inputSize.next();
int size = 0;
while(inputSize.hasNext()) {
    size = size + 1;
}
inputSize.close();
Scanner inputStream = new Scanner(file);
PermissionSetTabSetting[] record = new PermissionSetTabSetting[size];
PermissionSetTabSetting tabSetting;
int count = 0;
inputStream.next();
System.out.println(inputStream.hasNext());
for(count = 0; inputStream.hasNext() ; count++) {
    tabSetting = new PermissionSetTabSetting();
    String data = inputStream.next();
    String[] permissionSetTabValues = data.split(",");
    System.out.println("Line:" + data);
}

最佳答案

如果您正在读取文本文件,为什么不使用 Java 7 Files.readAllLines ?它将所有行存储到List<String>中然后你可以使用列表大小来实例化数组,如 ryburger 所说:

List<String> data = Files.readAllLines(new File("E:\\" + filename).toPath());
PermissionSetTabSetting[] record = new PermissionSetTabSetting[data.size()];

关于java - 如何处理获取相同文件的两个扫描仪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57328936/

相关文章:

java - 创建第二个实例时抛出异常

java - 为什么我们需要调用 thread.start() 而不是 thread.run()?

java - 如何将字符 "-"和 "` "添加到字符串正则表达式?

java - Java 嵌入式套件的 Websocket

java - 我可以获得 Spring Boot Web 应用程序中的所有验证错误吗?

java - Java 中的 Perlin 噪声问题

java - 使用 AsyncTask 编辑 Fragment UI 项目

Java 正则表达式问题?

java - 下载文件(节点上有chrome)并将其保存到服务器文件系统上

java - 如何在 Sonar 中查看所有被忽略的测试?