使用 BufferedReader 读取 Java 中的一行
Using BufferedReader to read a single line in Java
我已经成功地从 CSV 中读取了代码。但是,当我尝试使用 fileReader
来阅读单行时,它会使我的代码停止工作。
这是我的代码:
try {
String line = "";
fileReader = new BufferedReader(new FileReader(filename));
while ((line = fileReader.readLine()) != null) {
String[] tokens = line.split(DELIMITER);
for (String token : tokens) {
totalData.add(token);
if (!artists.contains(token)) {
artists.add(token);
}
}
for (int l = 0; l <= 999; l++) {
lineData = fileReader.readLine();
lineArray[l] = lineData;
}
}
} finally {
fileReader.close();
}
当我尝试读取 arrayList
大小和打印数据时,我从上面的 arrayList
s 中获取以下代码使其停止工作:
for (int l = 0; l <= 80; l++) {
lineData = fileReader.readLine();
lineArray[l] = lineData;
}
如果我评论这个循环,一切都很好。我真的需要这个 for 循环,我该如何编辑我的代码来解决这个问题?另外,这是怎么回事?
for (int l = 0; l <= 80; l++) {
lineData = fileReader.readLine();
lineArray[l] = lineData;
}
这个硬代码可以代替一行代码:
lineArray[i++] = line;
我更正了您的代码,结果就是这样:
String line = "";
int i = 0;
try (BufferedReader fileReader = new BufferedReader(new FileReader(""))) {
while ((line = fileReader.readLine()) != null) {
lineArray[i++] = line;
String[] tokens = line.split(DELIMITER);
for (String token : tokens) {
totalData.add(token);
if (!artists.contains(token)) {
artists.add(token);
}
}
}
}
我已经成功地从 CSV 中读取了代码。但是,当我尝试使用 fileReader
来阅读单行时,它会使我的代码停止工作。
这是我的代码:
try {
String line = "";
fileReader = new BufferedReader(new FileReader(filename));
while ((line = fileReader.readLine()) != null) {
String[] tokens = line.split(DELIMITER);
for (String token : tokens) {
totalData.add(token);
if (!artists.contains(token)) {
artists.add(token);
}
}
for (int l = 0; l <= 999; l++) {
lineData = fileReader.readLine();
lineArray[l] = lineData;
}
}
} finally {
fileReader.close();
}
当我尝试读取 arrayList
大小和打印数据时,我从上面的 arrayList
s 中获取以下代码使其停止工作:
for (int l = 0; l <= 80; l++) {
lineData = fileReader.readLine();
lineArray[l] = lineData;
}
如果我评论这个循环,一切都很好。我真的需要这个 for 循环,我该如何编辑我的代码来解决这个问题?另外,这是怎么回事?
for (int l = 0; l <= 80; l++) {
lineData = fileReader.readLine();
lineArray[l] = lineData;
}
这个硬代码可以代替一行代码:
lineArray[i++] = line;
我更正了您的代码,结果就是这样:
String line = "";
int i = 0;
try (BufferedReader fileReader = new BufferedReader(new FileReader(""))) {
while ((line = fileReader.readLine()) != null) {
lineArray[i++] = line;
String[] tokens = line.split(DELIMITER);
for (String token : tokens) {
totalData.add(token);
if (!artists.contains(token)) {
artists.add(token);
}
}
}
}