黑马程序员技术交流社区

标题: IO异常处理问题 [打印本页]

作者: yjgoss    时间: 2013-12-23 18:59
标题: IO异常处理问题
import java.io.*;
class FileWriteDemo
{
public static void main(String[] args) throws IOException
{
   FileWriter fw = null;
  try
  {
   fw = new FileWriter("demo.txt");
  fw.write("abcde");
  //fw.flush();
  
   
  }
  catch (IOException e)
  {
   System.out.println(e.toString());
  }
  finally
  {
   try
   {
    fw.close();
   }
   catch (IOException e)
  {
   System.out.println(e.toString());
  }  
}
}   编译时说解析时已达到文件结尾,是怎么回事


作者: 逸俊逍全    时间: 2013-12-23 20:42
通读你的代码,我发现少了一个“}”,这就是原因。
作者: 文江江    时间: 2013-12-24 01:10
少个“}”,在关闭资源是需要判断一下是否为null,运行正常啊
作者: 恨死我了    时间: 2013-12-24 09:51
import java.io.FileWriter;
import java.io.IOException;

class FileWriteDemo {
        public static void main(String[] args) throws Exception {
                FileWriter fw = null;
                try {
                        fw = new FileWriter("demo.txt");
                        fw.write("abcde");

                } catch (IOException e) {
                        System.out.println(e.toString());
                } finally {
                        if (fw != null) {             //在关闭资源是需要判断一下是否为null

                                try {
                                        fw.close();
                                        throw new IOException("空指针");
                                } catch (IOException e) {
                                        System.out.println(e.toString());
                                }
                        }
                }
        }
}

少个“}”,在关闭资源是需要判断一下是否为null,运行正常啊
作者: 青出于蓝    时间: 2013-12-24 10:00
try。。catch。。finally语句块中的finally总会执行的
FileWriter fw = null;
                try {
                        fw = new FileWriter("demo.txt");
                        fw.write("abcde");

                }
在上述语句中如果 fw = new FileWriter("demo.txt");找不到就会抛出异常,同时fw=null
异常处理完后,会进入finally语句块,执行关闭操作时由于fw=null,所以会报空指针异常,故需要
进行非空判断。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2