首页 > 解决方案 > 在 NetBeans 中逐行读取文本文件

问题描述

我正在使用以下代码从文件中读取

int lineNumber = 0;
  try{
       BufferedReader in = new BufferedReader (new FileReader("electric.txt"));
  String line = null;
    while((line = in.readLine()) != null){
     lineNumber++;
     system.out.println("Line "+ lineNumber + " : "+ line);
     }
   } catch(IOException e){
     e.printStackTrace();
   }

我的文件在每一行都有特定的值,例如第一行是 int、第二个字符串、第三个布尔值等...

我的问题是如何获取变量中的每种数据类型?

标签: java

解决方案


基本上,在一种天真的方法中,您只需根据需要进行尽可能多的读取:

String firstLine = in.readLine();
String secondLine = in.readLine();
...

然后你可以做类似的事情:

Whatever dataObject = new Whatever(firstLine, secondLine, ...);

例如(可能在一个循环中,因为您可能想要读取许多数据对象的数据,而不仅仅是一个数据对象)。

换句话说:您在一些辅助变量中读取所需的属性,然后将它们推送到您要填充数据的对象中。优点:这适用于非常大的数据,因为您一次只能读取几行。缺点:您必须担心无效文件、丢失行和此类事情(因此您需要大量的错误处理)。

或者:只需先将整个文件读入内存,例如使用List<String> allLines = java.util.Files.readAllLines(somePathToYourFile);然后,您迭代这些allLines以进一步处理您的内容,现在无需担心 IOExceptions。


推荐阅读