设计模式之装饰器模式io的小入门(十一)
原文总结
定义: 在不必改变原类文件和使用继承的情况下, 动态的扩展一个对象的功能. 通过创建一个包装对象, 也就是装饰来包裹真实的对象
部分详解提示
看了一些文档, 装饰器模式非常依赖构造器 与 重写方法
装饰器模式的特点: 不改变原来的类 , 不使用继承 , 动态扩展
流这块除了文件上传下载使用过, 确实用的太少了这里继续复习下最简单的文件上传
- 文件目录的创建
- 目录的是否存在没有就创建
- 不推荐: 年/月/日 一般没什么用户权限的图片之类的不过
- 推荐: 模块/用户/模块/年/月/日
- 获取临时上传的路径
- 判断文件类型, 创建文件 , 开流写入硬盘关流
原文中在修饰到datainputstream是有个为什么不去直接修饰inputstream?
解答: 由于使用的是fileinputstream. 其中的read方法中有个 fileReadEnd, 防止文件没有关闭通道
datainputstream与pushbackinputstream详解
- datainputstream是一个允许数据输入流从底层中读取基本java数据类型, 与机器无关就是指统一的io不管系统是pc还是mac之类的
- 其中的readutf方法我复习了一点位运算 & 二进制之间的运算 详细的解析地址看这里DataInputStream详解
- pushbackinputstream为另一个流添加性能, pushback(退会)和 unread 取消读取
其他的一些流
- InputStreamReader 转码功能 reader的功能
- BufferedReader 读取行readLine
- LineNumberReader 获取行号
- PushbackReader reader版的取消读取
steam