Java:将整数从文件读入数组
File fil = new File("Tall.txt");
FileReader inputFil = new FileReader(fil);
BufferedReader in = new BufferedReader(inputFil);
int [] tall = new int [100];
String s =in.readLine();
while(s!=null)
{
int i = 0;
tall[i] = Integer.parseInt(s); //this is line 19
System.out.println(tall[i]);
s = in.readLine();
}
in.close();
我试图使用文件 "Tall.txt" 将其中包含的整数写入名为 "tall" 的数组。它在一定程度上做到了这一点,但当我运行它时,也会抛出以下异常(:
Exception in thread "main" java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at BinarySok.main(BinarySok.java:19)
到底为什么会这样,我该如何删除?在我看来,我以字符串形式读取文件,然后将其转换为 ints,这并不违法。
13
3
您的文件中必须有一个空行。
您可能需要用一个 "try" 块来封装您的 parseInt 调用:
或者干脆在解析前检查是否为空字符串:
请注意,通过在循环内初始化索引变量
i
,它始终为 0。您应该将该声明移到while
循环之前。(或者将其作为for
循环的一部分)。看起来 Java 正在尝试将一个空字符串转换成一个数字。一系列数字的末尾是否有空行?
您或许可以这样修改代码
您可能会对不同的行结束符感到困惑。 Windows 文件的每行结尾是回车和换行。 Unix 上的一些程序在读取该文件时会认为每行之间多了一个空行,因为它将回车视为行尾,然后将换行视为另一个行尾。