A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 我是刘通 中级黑马   /  2015-10-9 23:15  /  299 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


IO流概述
1、IO流:即InputOutput的缩写。
2、特点:
       IO流用来处理设备间的数据传输。
    Java对数据的操作是通过流的方式。
    Java用于操作流的对象都在IO包中。
    流按操作数据分为两种:字节流和字符流。
     流按流向分为:输入流和输出流。
注意:流只能操作数据,而不能操作文件。
3、IO流的常用基类:
    字节流的抽象基流:InputStream和OutputStream
    字符流的抽象基流:Reader和Writer
注:此四个类派生出来的子类名称都是以父类名作为子类名的后缀,以前缀为其功能;如InputStream子类FileInputStream;
Reader子类FileReader

字符流
字符写入流FileWriter
父类Writer中的构造方法被protected修饰表示只给子类访问
字符流中的对象融合了编码表。使用的是默认的编码,即当前系统的编码。
数据的最常见体现形式是:文件
专门用于操作文件的Writer子类对象:FileWriter
close()和flush()区别:
        flush()刷新后,流可以继续使用;
        close()刷新后,将会关闭流,不可再写入字符流。
(windows系统中的文件内换行用\r\n两个转义字符表示,在linux系统中只用\n表示换行)
//创建一个FileWriter对象,该对象一被创建就必须明确被操作的文件,而且该文件会被创建到指定的目录下,如果该目录下有同名文件,会被覆盖:  
FileWriter fw = new FileWriter("demo.txt"); //注意会抛出异常:比如文件路径不存在  
//调用write方法,将字符串写入到流中  
fw.write("abcde");  
//刷新流对象中的缓冲,将其中的数据刷到目的地中  
fw.flush();  
//关闭流资源,但是关闭之前会刷新一次内部的缓冲中的数据。因为Java会调用系统中的内容来完成数据的写入,完成之后必须将资源释放,所以close  
//将数据刷到目的地中。  
//和flush区别:flush刷新后,流可以继续使用,close刷新后,会将流关闭。  
fw.close();  
字符流的缓冲区
缓冲区的出现是为了提高流的操作效率,所以在创建缓冲区对象之前,要有流对象
只要将需要被提高效率的流对象作为参数传递给缓冲区的构造函数即可
缓冲区要结合流才可以使用,在流的基础上对流的功能进行了增强
原理:缓冲区对象里面封装了数组,不需要再自定义数组了


1 个回复

倒序浏览
赞一个!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马