我想获取一个 txt 文件,并按顺序将该文件的每一行作为 ArrayList 中的元素。我也不想要每行末尾的“\n”。我该怎么办?
user1212818
问问题
1217 次
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 回答