【发布时间】:2019-08-30 11:58:54
【问题描述】:
我有一个简单的文本文件,每一行都有一个数字,然后是一些其他数据,如下所示:
1 somedata someotherdata 2 randomstuff notimportant
我想要读取文件,并为每一行在数字上使用 parseInt()。我的(简化的)代码:
File file = new File("data.txt");
BufferedReader reader = new BufferedReader(new FileReader(file));
String line;
while ((line = reader.readLine())!= null) {
String splitLine[] = line.split(" ");
int number = Integer.parseInt(splitLine[0]);
String str1 = splitLine[1];
String str2 = splitLine[2];
// do some stuff with the data
}
这在大多数情况下都有效...除了文件的第一行。阅读第一行并将其拆分完全没有问题。对所有后续行使用 parseInt() 也没有问题。然而,当我尝试 parseInt() 第一行的第一个数字时,我得到一个 NumberFormatException。文本文件本身似乎没有任何问题,每一行的格式都是相同的。为什么会这样?
【问题讨论】:
-
异常显示什么?它应该显示它试图解析的值,所以你不需要猜测发生了什么。
-
第一行的
splitLine[0]是什么? -
异常显示正确的值。线程“main”java.lang.NumberFormatException 中的异常:对于输入字符串:“1”
-
您确定没有特殊的不可打印字符吗? (使用调试器)
标签: java