2" at java.lang.NumberFormatException.forInputString(Unknown Source) at java.lang.Integer.parseInt(Unknown Source) at java.lang.Integer.parseInt(Unknown Source) at BookManager.InsertAll(BookManager.java:411) at BookManager.main(BookManager.java:115)
可以看到,读第一行是对的,到了第二行第一个字段就出问题了,数字格式不对? 开始的时候,读第一行最后一个字段("NULL")就出问题,后来debug发现是最后一个字段后面少了一个空格(" "),可能跟我用split(" ")有关,改了,在所有行最后一个字符后面加了个空格,就对了。但是读第二行的时候还是出错。我不知道该怎么办了,因为从输出来看读取是对的,"2"就是个数字嘛。 麻烦各位帮忙看看,谢谢。 [最优解释] 问题是因为第一行的末尾有回车符,所以回车符跟第二行的2分在一起没法转换成为int。 用BufferedReader.readline(),每次读一行。 fr = new FileReader(fileName); BufferedReader br = new BufferedReader(fr); //将文件内容读入字符串 char[] cbuf = new char[1024]; int hasRead = 0; String[] bookInfoStr = null; StringBuilder InfoStr = new StringBuilder(); String str = ""; while (( str = br.readLine())!=null) { InfoStr.append(str); } [其他解释]