黑马程序员_IO

来源:互联网 发布:手机调整图片尺寸软件 编辑:程序博客网 时间:2024/05/22 23:59
---------------------- android培训、java培训、期待与您交流! ----------------------

今天学习关于IO方面的知识,感觉收获蛮多的,使用java语言控制文件的读写操作,IO流分为字节流和字符流,字节流的抽象基类:InputStream 和OutputStream,字符流的抽象基类:Reader和Writer。

由此四个类派生出的子类的后缀名都是用其父类,例如:InputStream的子类是File- InputStream,Reader 的子类是FileReader。

在创建文件时用到FileWriter类,并必须抛出异常IOException,具体代码如下:

import java.io.*;

public class FileDemo {

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

          {

                   FileWriter fw=new FileWriter("Demo.txt");

                   fw.write("adfdsadfsdfsd");

                   //fw.flush();

                   //fw.write("dsfsdfdsfdfsafdfdfsdadfsad");

                   //fw.flush();

                   fw.write("dfadsfd");

                   fw.close();

          }

 

}

其中flush()的作用是刷新内存中内容,将内存中的内容转到目的地。Close()的作用是关闭流,并在关闭之前刷新内存中的内容其作用等同于flush()的作用。但是flush()和close()的最大区别在于调用flush()之后流没有关闭,对象仍可调用write()方法把数据写进流里。但是

调用close()方法后,流已经被关闭了,对象不可以继续往流里写数据。

对于io异常的处理,必须使用try {}catch(IOException e){}语句,具体代码如下:

import java.io.*;

public class FileExceptionDemo {

 

          public static void main(String []args)

          { 

                   FileWriter fw=null;

                   try{

                    fw=new FileWriter("Demo.txt");

                   fw.write("dfdfdfdf");

          }

         

                   catch (IOException e)

             {

                   System.out.println("error:"+e.toString());

             }

                   finally

                   {

                            try{

                                      if(fw!=null)

                                      fw.close();

                            }

                            catch(IOException e)

                            {

                                      System.out.println(e.toString());

                            }

                   }

          }

}

其中由于fw是成员变量,作用域是整个函数里面,因而不能在try语句里面进行初始化,必须声明成成员属性才能在finally语句中使用。

fw=new FileWriter("Demo.txt"); fw.write("dfdfdfdf"); fw.close();这三句代码都回有异常产生,因此必须为每句代码添加try—catch语句捕获异常。

最后,在finally语句中,要先判断fw的值是否为空,因为finally语句中的代码会强制执行,但是当fw为null的时候会发生异常,为了提高程序的健壮性,应避免此类情况的发生,所以加上null判断语句。

---------------------- android培训、java培训、期待与您交流! ----------------------
原创粉丝点击