【发布时间】:2016-03-09 06:39:18
【问题描述】:
我想对文件的行进行反击,在第二遍中,我想获取每一行并对其进行操作。它没有编译错误,但不能进入第二个 while ((line = br.readLine()) != null) 。
有没有不同的方法来获取文件的行(电影)并存储在数组中?
BufferedReader br = null;
try { // try to read the file
br = new BufferedReader(new FileReader("movies.txt"));
String line;
int numberOfMovies = 0;
while ((line = br.readLine()) != null) {
numberOfMovies++;
}
Movie[] movies = new Movie[numberOfMovies]; // store in a Movie
// array every movie of
// the file
String title = "";
int id = 0;
int likes = 0;
int icounter = 0; // count to create new movie for each line
while ((line = br.readLine()) != null) {
line = line.trim();
line = line.replaceAll("/t", "");
line = line.toLowerCase();
String[] tokens = line.split(" "); // store every token in a
// string array
id = Integer.parseInt(tokens[0]);
likes = Integer.parseInt(tokens[tokens.length]);
for (int i = 1; i < tokens.length; i++) {
title = title + " " + tokens[i];
}
movies[icounter] = new Movie(id, title, likes);
icounter++;
}
} catch (IOException e) {
e.printStackTrace();
}
【问题讨论】:
-
你真的读过两次文件吗?如果您知道文件可以放入内存中,您可以只读取一次并将其存储在内存中,然后从那里再次读取
标签: java file bufferedreader java-io