我如何读取文件,每行是Java中ArrayList中的一个元素?

时间:2012-10-26 08:22:53

标签: java arraylist readfile

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

3 个答案:

答案 0 :(得分: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”中每行中不需要的字符。

答案 1 :(得分: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
}

答案 2 :(得分: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
}