IO流

1,IO流用来处理设备之间的数据传输,java对数据的操作是通过流的方式;

2,IO流按操作数据分为:字节流(基类:InputStream,OutputStream);字符流(基类:Reader,Writer)

             按流向分为:输入流,输出流;

3,有四个类派生出来的子类名称都是以其父类名作为子类名的后缀;

4,字符流

(Writer):

FileWriter(用于操作文件的Writer子类对象)

(1)创建一个FileWriter对象,对象一初始化就明确被操作的文件,而且该文件会创建到该指定目录下,如果已有同名文件,则会覆盖;

(2)调用write方法,将字符串写入流中;

(3)刷新流对象中的缓冲的数据,刷到目的地中,flush();

(4)关闭流资源,close();

(5)如对已有文件续写,传递一个true参数(file,true),在已有文件末尾续写;

5,Reader

FileReader(用于操作文件的Reader子类对象)

(1)创建一个已经存在的文件读取流对象,如不存在,会发生FileNotFoundException;

(2)调用读取流的方法,read(),通过字符数组来读取;

(3)关闭资源,close();

6,缓冲区(为了提高流的操作效率)

BuffferdWriter

(1)创建一个字符写入流对象;

(2)加入缓冲技术,把流对象作为参数传递给缓冲区的构造函数;

(3)刷新;

(4)关闭;

(5)跨平台性的换行符:newLine();

BufferedReader

(1)创建一个读取流对象和文件相关联;

(2)加入缓冲技术;

(3)读一行 : readLine( ),readLine方法只返回回车符之前的数据内容,并不返回回车符,所以用newLine进行换行;

7,装饰设计模式:对已有对象进行功能增强时,可以定义类将已有对象传入,基于已有的功能并提供加强功能;

装饰类:通常通过构造方法接受被装饰的对象,并基于被装饰的对象的功能,提供更强的功能;

装饰设计模式比继承灵活,避免了继承体系臃肿,而且降低了类和类之间的关系;

LineNumberReader(缓冲字符输入流,跟踪行号):有readLine方法,编号从0开始;

setLineNumber:设置当前行号;getLineNumber:获取当前行号;

8,字节流

OutputStream输出流(写):

InputStream输入流(读):

FileOutputStream(用于操作文件的OutputStream子类对象)

FileInputStream(用于操作文件的InputStream子类对象)

读取方法:通过数组,通过avaiable(个数);


9,转换流:

    将字节流对象转成字符流:InputStreamReader  

    将字符流转成字节流:OutputStreamWriter

    键盘录入:  获取键盘录入对象   InputStream   in =  System.in  ;

BufferedReader   bufr  =  new BufferedReader( new InputStreamReader(System.in));

    系统输出: OutputStream  out  = System.out  ;

 BufferedWriter    bufw = new  BufferedWriter(new OutputStreamWriter(System.out) );

10,流操作的基本规律

(1)明确源和目的:

源:输入流,InputStream,Reader

目的:输出流,OutputStream,Writer

(2)数据是不是纯文本

是:字符流

不是:字节流

(3)体系明确后,通过设备区分使用哪个具体的对象

源设备:内存(ArrayInputStream,ArrayReader),硬盘(FileInputStream,FileReader),键盘(System.in)

目的设备:内存(ArrayOutputStream,ArrayWriter),硬盘(FileOutputStream,FileWriter),控制台(System.out)

                  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值