【发布时间】:2015-11-11 17:54:48
【问题描述】:
ArrayList <Integer> referenceNom = new ArrayList <Integer>();
ArrayList <String> bookTitle = new ArrayList <String>();
BufferedReader br = null;
try {
br = new BufferedReader(new FileReader("Booklist.txt"));
while ((br.readLine()) != null ){
for (int count = 1; count <= 44; count++){
if (count % 2 == 1){
referenceNom.add(Integer.parseInt(br.readLine()));
System.out.print(referenceNom.get(count));
}else {
bookTitle.add(br.readLine());
System.out.print(bookTitle.get(count));
}
}
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
br.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
我正在尝试创建一个读取文本文件行的阅读器,在本例中为“Booklist.txt”。问题是我不断收到 java.lang.NumberFormatException 错误。文本文件由 44 行组成,第一行是数字,第二行是书名,第三行是数字,依此类推。我试图创建一个阅读器来检查行号是偶数还是奇数,并根据它将该行文本添加到整数数组列表或字符串数组列表中。数字的整数数组列表和书名的字符串数组列表。此外,我还尝试通过创建一个计数器来跟踪行号,每次读取一行时计数加 1。
非常感谢任何帮助,在此先感谢。
【问题讨论】:
-
} else if (count == 1); {是错误的。您可以删除条件并使用else。 -
编辑了那部分谢谢
-
不要使用 if 和 else if 语句,只需让 BufferedReader 读取一行,然后立即读取第二行。这会将你的 for 循环代码减少到 2 行代码。
标签: java arraylist text-files bufferedreader