java出错,空指针。比较2个txt文档的差别,一个4W6行,一个4W8行,计算出有相同内容的行数。

[复制链接]
查看11 | 回复3 | 2012-8-9 15:41:40 | 显示全部楼层 |阅读模式
好了,测试成功。抛出空指针异常,因为在第二个while循环到最后一行之后,文件读取完毕,str2 = in2.readLine();赋值不成功str2=null,所以str2 = new String(str2.getBytes(), Charset.forName(txtfile2_encode));会抛出空指针异常。解决方法是加一个try{}catch{}。当然加了try{}catch{}还有一个问题就是,in2读取到了最后一行并且为NULL如何让他回到缓冲区的头部,查阅资料及API很久后,发现可以通过关闭流再打开流回到头部。代码如下: import java.io.BufferedReader;import j...
回复

使用道具 举报

千问 | 2012-8-9 15:41:40 | 显示全部楼层
while循环写的有问题,这样改while (true) {i++;str1 = in1.readLine();if (str1 == null || str2 == null)break;str1 = new String(str1.getBytes(), Charset.forName(txtfile1_encode));wh...
回复

使用道具 举报

千问 | 2012-8-9 15:41:40 | 显示全部楼层
你的循环结束的条件就是str1==null或者str2==null,所以执行到str1.equals(str2)的时候str1或者str2就肯定是null,所以就肯定要报空指针异常了。希望能帮到你,好运!...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行