【发布时间】:2015-12-23 16:38:53
【问题描述】:
我有一个包含几行的纯文本文件。每行都以 id 开头:
1346 Salomon Shoes 129.99 7
我所需要的只是将 id 放入一个“int”变量中。为什么会抛出 NumberFormatException?
BufferedReader bufferedReader = new BufferedReader(new FileReader("d:\\temp\\prices.txt"));
String line = bufferedReader.readLine();
String id = line.split(" ")[0];
int result = Integer.parseInt(id);
System.out.println(result + 1);
但是当我使用 consoleReader 时它不会抛出 NumberFormatException
BufferedReader consoleReader = new BufferedReader(new InputStreamReader(System.in));
然后输入完全相同的行!?
【问题讨论】:
-
除了您将变量声明为
bufferedReader然后将其用作reader之外,此代码对您提供的示例文件也适用。也许这里发生了其他事情? -
UPD。那是我对变量名的错误。我特别创建了干净的类来测试这段代码。无论如何 - 当我从文件中读取一行时,我得到了 NumberFormatException。但是当我从控制台读取确切的行时 - 一切正常!...
-
@rbaloo 你能把你的输入 prices.txt 文件上传到某个地方让我们看看吗?您还可以使用异常堆栈跟踪更新问题吗?
-
那异常说什么?
标签: java bufferedreader filereader parseint numberformatexception