【问题标题】:NumberFormatException when using FileReader使用 FileReader 时出现 NumberFormatException
【发布时间】: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


【解决方案1】:
BufferedReader bufferedReader;
String line = null;

try {
    bufferedReader = new BufferedReader(new FileReader(
            "prices.txt"));
    line = bufferedReader.readLine();
} catch (FileNotFoundException e1) {
    e1.printStackTrace();
} catch (IOException e) {
    e.printStackTrace();
}
String id[] = line.split(" ");

int result = Integer.parseInt(id[0]);
System.out.println(result + 1);

【讨论】:

    猜你喜欢
    • 2014-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-04
    相关资源
    最近更新 更多