java io

                      Java  io 流分析

1.       Io流按类型分为两种:字节流和字符流

2.       字节流:InputStream(输入字节流,读取文件)   OutputStream(输出字节流,输出文件)

字符流:Reader(输入字符流,读取文件)        writer(输出字符流,输出文件)

3.       字节流用于任何文件的输入输出。字符流只适用与文本文件的读写。如果是图片之类的还是得适用字节流

   InputStream(默认构造函数)

在这里首先的说一下设计模式之装饰模式(Decorator)

1.  对象:抽象类InputStream;其中read()方法是抽象方法

      实现类 FilterInputStream 继承FilterInputStream

1)定义protected InputStream 对象

2)构造方法传入一个参数,参数是InputStream

3)其它方法都回调InputStream的方法

具体继承类粉墨登场:BufferedInputStream

1)  默认缓存大小为8182字节,也就是8K

2)  至始至终都么有将read方法实现。一直是调用的InputStreamread方法。Buffered的创建必须依靠InputStream的其它子类进行装饰后才能使用

其它继承类 例如:FileInputStream;

1)  3个构造函数,一个文件路径(全),一个是文件,一个是FileDiscriptor(此文件是对操作系统不同而做的封装类)

ByteArrayInputStream 构造函数为字节 读取字节

5.  OutputStream


1)  输出流 抽象类 OutputStream  默认两个构造函数 第一个byte ,第二个是bytestartlength;抽象writer()方法

2)  FilterOutputStream:继承抽象类OutputStream ,定义一个protected OutputStream,构造函数是OutputStreamwriter()方法回调outputStream;

3)  BufferedOutputStream :继承抽象类FilterOutputStream,构造函数继续传递outputstream.初始化8k字符,如果大于初始化的大小则写入目标文件。

4)  FileOutputStream:4个构造函数,boolean是是否追加的功能

 

6.  Reader

 

对象:这里所说的是Adapter(适配器模式)

1)  抽象类Reader ,抽象closeread(char[],int,int) ,

2)实现类InputStreamReader继承Reader,主要是两个构造方法。一个InputStreamReader(InputStream in) :采用默认的字符编码InputStreamReader(InputStream in, String charsetName) 使用制定字符集编码。(引用外部的接口适配实现)

构造函数中实现了将InputStream转换成readerreadclose方法都是调用InputStream的方法。

3)FileReader继承InputStreamReader,两个构造函数:filereader(String filename),fileReader(File file),这两个参数调用的是FileInputStream。(使用外部的接口实现类完成具体的实现)

适配器:分为两种,

一种是类适配器:继承外部类。调用其实现方法

一种是对象适配器:将多个外部实现类(或者接口)放入适配器中,进行调用。

这里InputStreamReader是调用外部抽象类来实现需要的功能。FileReader就是调用FileInputStream的实现。FileReader如果要使用字符集编码的话,得使用FileInputStream来实现。

Writer

 

Reader

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值