设计模式之装饰器模式io的小入门(十一)

装饰器模式详解地址 


原文总结

定义: 在不必改变原类文件和使用继承的情况下, 动态的扩展一个对象的功能. 通过创建一个包装对象, 也就是装饰来包裹真实的对象

uml

部分详解提示

看了一些文档, 装饰器模式非常依赖构造器 与 重写方法

装饰器模式的特点: 不改变原来的类 , 不使用继承 , 动态扩展


流这块除了文件上传下载使用过, 确实用的太少了这里继续复习下最简单的文件上传

  • 文件目录的创建
    • 目录的是否存在没有就创建
    • 不推荐: 年/月/日 一般没什么用户权限的图片之类的不过
    • 推荐: 模块/用户/模块/年/月/日
  • 获取临时上传的路径
  • 判断文件类型, 创建文件 , 开流写入硬盘关流

原文中在修饰到datainputstream是有个为什么不去直接修饰inputstream?

解答: 由于使用的是fileinputstream. 其中的read方法中有个 fileReadEnd, 防止文件没有关闭通道

datainputstream与pushbackinputstream详解

  • datainputstream是一个允许数据输入流从底层中读取基本java数据类型, 与机器无关就是指统一的io不管系统是pc还是mac之类的
    • 其中的readutf方法我复习了一点位运算 & 二进制之间的运算 详细的解析地址看这里DataInputStream详解
  • pushbackinputstream为另一个流添加性能, pushback(退会)和 unread 取消读取

其他的一些流

  • InputStreamReader 转码功能 reader的功能
  • BufferedReader 读取行readLine
  • LineNumberReader 获取行号
  • PushbackReader reader版的取消读取

inputstreamUML

steam

posted @ 2017-04-28 18:27  hassenli  阅读(328)  评论(0编辑  收藏  举报