IO边角

装饰者模式

定义装饰者模式,方式是定义一个顶级的接口原始类.之后让实现类实现它,只要再把第二个类来包裹这第一个类就能实现装饰者的作用.

我问:为什么一定要定义一个顶级接口来继承他?这样做的好处是可以实现多态,更易于扩展,你把任何对象都可以穿进来因为里面是顶级接口来定义的它能接住所有的子类对象.

注意

  • file.delete删除目录的时候,只能删除空目录就是说不能删除多级目录,只能一层一层删除.
    file创建目录的时候如果目录和文件重名了是不能创建的.
  • 创建目录可以一次创建多级
  • 为什么read方法会自动向后偏移向后移动,因为他有类似迭代器的next方法,只是这个方法是在操作系统中,每个操作系统都有读文件的类似功能,虽然不同,但经过jvm都能屏蔽他们的差别.
  • 数据流使用完之后一定要关闭资源,不关闭资源程序不算完成,数据是写不进去的,所以一定要养成关闭资源的好习惯.

NIO

  • 是否可以使用字符流来传送?可以
    是否可以给流外面套换一个缓冲流?可以套,但要注意顺序,是对象流包裹缓冲流,缓冲流包裹普通流.
  • 序列化的时候往文件里输入可以单个输入也可以集合输入.
    但是取出的时候只能成集合的取出,因为没有单个取出的方法.另外单个插入的用集合取出会错.所以它一次只能存一个对象,最好存入一个集合对象。

FileOutputStream

  • 它往文件写数据的时候如果文件存在就把里面的内容覆盖,如果不想覆盖就在FileOutputStream的路径写入第二个参数true,就变成了追加(它默认是false覆盖).不存在就自己创建.
  • FileOutputStream是不会自动建文件夹的
  • OutputStream是接口,实现类是FileOutputStream。所以FileOutputStream能够做具体的功能。

你可能感兴趣的:(IO边角)