zoukankan      html  css  js  c++  java
  • 设计模式之装饰器模式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

  • 相关阅读:
    animation动画应用--android游戏开发
    Codeforces Round #203 (Div. 2)
    Codeforces Round #206 (Div. 2)
    Codeforces Round #204 (Div. 2): C
    Codeforces Round #204 (Div. 2): B
    Codeforces Round #204 (Div. 2): A
    Codeforces Round #205 (Div. 2) : D
    Codeforces Round #205 (Div. 2) : C
    Codeforces Round #205 (Div. 2) : B
    Codeforces Round #205 (Div. 2) : A
  • 原文地址:https://www.cnblogs.com/denghailei/p/6782860.html
Copyright © 2011-2022 走看看