java io流 设计模式_JAVA--IO--4--java io流中涉及的设计模式

java io流中涉及的设计模式

介绍

先看一段代码,查看其中涉及到的模式

public void testInputStreamReader() throws Exception {

private static final String SEPARATOR = File.separator;

File file = new File("e:" + SEPARATOR + "io" + SEPARATOR + "test.txt");

//BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream(file)));

// 备注上面这个初始化过程就是多次使用包装来完成的,不推荐这么写,会让新手看不懂。

//1、获得子节输入流

FileInputStream fileInputStream=new FileInputStream(file);

//2、构造转换流(是继承Reader的)

InputStreamReader inputStreamReader=new InputStreamReader(fileInputStream);

//3、 构造缓冲字符流

BufferedReader bufferedReader=new BufferedReader(inputStreamReader);

//备注1、2两步骤体现出了适配器模式

//2步骤体现了InputStreamReader类具有将子节输入流转换为字符输入流的功能

//2、3两步骤体现了装饰模式(wrapper包装模式)

}

io中的适配器模式

由于InputStream是字节流不能享受到字符流读取字符那么便捷的功能,因此借助

InputStreamReader将其转为Reader子类,因此可以拥有便捷操作文本文件方法。

OutputStream同理。

适配器模式

//TODO

io中的装饰(包装)模式

将InputStream字节流包装为BufferedReader过程就装饰的过程。一开始

InputStream只有read一个字节的方法,包装为Reader之后拥有read一个字符的功

能,在包装成BufferedReader之后就拥有read一行字符串功能。OutputStream同理

装饰模式

//TODO

总结

java io流操作对于新手来说可能看到有那么多接口、抽象类、和类可能会不知道从何下

手,我个人的见解是理解好面向对象(对IO流接口、类的层次结构理清楚)、弄清楚源和

目标(输入和输出方向)、以及装饰和适配器模式那么掌握好io流操作并不会很难。相比

于并发而言io算容易的哈。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值