0

我想获取一个 txt 文件,并按顺序将该文件的每一行作为 ArrayList 中的元素。我也不想要每行末尾的“\n”。我该怎么办?

4

3 回答 3

3

我发现了这个,可以用JDK7制作:

List<String> readSmallTextFile(String aFileName) throws IOException {
    Path path = Paths.get(aFileName);
    return Files.readAllLines(path, ENCODING);
}

并调用它

ArrayList<String> foo = (ArrayList<String>)readSmallTextFile("bar.txt");

在此之后,您可以过滤列表“foo”中每一行中的任何不需要的字符。

于 2012-10-26T08:35:35.890 回答
1

这需要三个简单的步骤:-

  • 从文件中读取每一行
  • 从末尾去掉换行符
  • 将行添加到ArrayList<String>

你看,我没有回答你的问题。我只是重新构图,看起来像一个答案。

这就是您的while循环条件的样子: -

Scanner scanner = new Scanner(yourFileObj);
while (scanner.hasNextLine()) {

    // nextLine automatically strips `newline` from the end
    String line = scanner.nextLine();  

    // Add your line to your list.
}

更新: -

由于您file逐行阅读,因此最好使用BufferedReader. 如果您想解析令牌并用它们做一些特别的事情,扫描仪会更好。 each

BufferedReader br = new BufferedReader(new FileReader("fileName"));

String line = null;

// readLine also doesn't include the newline in the line read
while ((line = br.readLine()) != null) {  
    //add your line to the list
}
于 2012-10-26T08:25:56.627 回答
1

我更喜欢 BufferedReader,它比 Scanner 快

BufferedReader br = new BufferedReader( new InputStreamReader( System.in ) );

读取直到文件结尾是

String line = br.readLine(); // read firt line
while ( line != null ) { // read until end of file (EOF)
    // process line
    line = br.readLine(); // read next line
}
于 2012-10-26T08:34:45.560 回答