黑马程序员—IO技术

来源:互联网 发布:农村淘宝免费下载安装 编辑:程序博客网 时间:2024/05/17 01:09

----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------

 

IO(Input Output)流:IO流用来处理设备之间的数据传输
Java对数据的操作是通过流的方式。
Java用于操作流的对象都在IO包中。
流按操作数据分为两种:字节流与字符流 。
流按流向分为:输入流,输出流。

 

IO流常用基类
字节流的抽象基类:
InputStream ,OutputStream。
字符流的抽象基类:
Reader ,Writer。
注:由这四个类派生出来的子类名称都是 以其父类名作为子类名的后缀。
如:InputStream的子类FileInputStream。
如:Reader的子类FileReader。

 

@字符流

以字符为单位传输数据的流。最常见体现形式:文件。

需求:在硬盘上,创建一个文件并写入一些文字数据。

找到一个专门用于操作文件的Writer子类对象。FileWriter。  后缀名是父类名。 前缀名是该流对象的功能。

代码实例如下:

import java.io.*;
class  FileWriterDemo
{
 public static void main(String[] args) throws IOException
 {
  //创建一个FileWriter对象。该对象一被初始化就必须要明确被操作的文件。
  //而且该文件会被创建到指定目录下。如果该目录下已有同名文件,将被覆盖。
  //其实该步就是在明确数据要存放的目的地。
  FileWriter fw = new FileWriter("demo.txt");

  //调用write方法,将字符串写入到流中。
  fw.write("abcde");

  //刷新流对象中的缓冲中的数据。
  //将数据刷到目的地中。
  //fw.flush();


  //关闭流资源,但是关闭之前会刷新一次内部的缓冲中的数据。
  //将数据刷到目的地中。
  //和flush区别:flush刷新后,流可以继续使用,close刷新后,会将流关闭。
  fw.close();
 }

@IO异常处理,代码实例如下:

import java.io.*;

class  FileWriterDemo2
{
 public static void main(String[] args)
 {
  FileWriter fw = null;//在外边建立引用,然后在try内建立初始化,保证其他代码块能够访问该引用
  try
  {
   fw = new FileWriter("demo.txt");//调用windows资源创建文件就可能会发生IO异常
   //fw = new FileWriter("k:\\demo.txt");//建立不存在的路径会发生FileNotFound异常
   fw.write("abcdefg");//写入数据过多超出内存时会发生IO异常

  }
  catch (IOException e)
  {
   System.out.println("catch:"+e.toString());
  }
  finally
  {
   try
   {
    if(fw!=null)
    //如果fw在初始化时发生异常,fw就为空,此时无法调用fw.close()方法,因此必须在此进行fw不为空的判断
     fw.close();
    //在写数据时发生异常,由于资源还存在,所以将close方法放置在finally块中保证资源最后能被关闭 
   }
   catch (IOException e)
   {
    System.out.println(e.toString());
   }
   
  }  

 }
}

 

----------------------- android培训、java培训、java学习型技术博客、期待与您交流! ----------------------

原创粉丝点击