JAVA读取文件的一个小问题

为啥会抛出FileNotFoundException异常呢?importjava.io.BufferedReader;importjava.io.FileNotFound... 为啥会抛出FileNotFoundException异常呢?
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

public class One {
public static void main(String[] args) throws IOException{

BufferedReader br = new BufferedReader(new FileReader("sd.txt"));
while(true){
String str = br.readLine();
if(str.equals("over")){
try {
br.close();
} catch (Exception e) {}
break;
//System.exit(0);
}
System.out.println(str);
}
}
}
文件sd.txt的内容是:
vsavas
sfafs
输出是:
vsavas
sfafs
Exception in thread "main" java.lang.NullPointerException
at ff.One.main(One.java:19)
展开
 我来答
匿名用户
推荐于2016-10-21
展开全部
  1. 你的提问应该是:为什么会抛出NullPointerException?

  2. 因为你的是最后一行就是null,所以会抛出空指针异常;

  3. 写代码如下:




  4. import java.io.BufferedReader;
    import java.io.FileReader;
    import java.io.IOException;

    public class One
    {
    public static void main ( String[] args ) throws IOException
    {
    BufferedReader br = new BufferedReader (new FileReader ("sd.txt"));
    String str = null;
    while (null != ( str = br.readLine () ))
    {
    if ("over".equals (str))
    {
    try
    {
    br.close ();
    }
    catch (Exception e)
    {}
    break;
    }
    System.out.println (str);
    }
    }
    }
马亦丁
2015-03-04 · TA获得超过166个赞
知道小有建树答主
回答量:105
采纳率:0%
帮助的人:87.2万
展开全部
String str = br.readLine();
str到最后一行返回的是null,所以有NullPointerException。

if(str.equals("over"))这句有问题,如果sd.txt的最后一行是over,可以这样写。

你可以改成 if(str == null),这样不管最后一行是什么,只要读完文件就完成。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式