java第九章IO流与文件操作
9-01.IOStream
就把他看成一个源,获取它的流
类似于集合,有抽象后相同的操作,也有独立的操作方法
屏蔽掉了输入输出地方的不同,专注于统一的操作方法,
只有01,但保存还是用字节,会好很多
你好:两个字6个字节
9-02.AutoCloseable
概念,现在讲实现:
(实际上是用来描述这个字节的十进制整数)
字节数组输入流:一次读多个字节
也是没有就自动创建
读入的那个字节是-1时结束(字节不能是负数)
for这里不合适
建一个变量作缓存
异常要么catch掉要么抛出
输入输出流一定要关闭,他是资源,要手动关闭
这种情况,没有对应盘符,会抛异常,会未关闭资源,所以先不抛,先catch住,放finally
还要注意,int或out出异常时没创建出来
这样就很啰嗦
java7提供try-with-resources Statement (try块)
很像open with
补充
会回去调用一个自动关闭
P9-03.ByteArrayBuffer
之前时按十进制数,这里是直接读到字节数组中
直接按读的长度写
没指定长度,最后一次读入5,后面上一次留下来的三个脏数据
java9提供自动的了新方法了,直接把输入流转移到输出流,不用自己写缓冲了
底层其实一样hhhhh,但这个for用法挺有意思(11的用的for)
有点老了,直接讲新的(下面2个)
word文档这些一个都不好使
会直接返回整个数组,整个引用接着就行,还可以在后面填编码方式(字符集name)
java有默认字符集,直接叫个名不太稳定
P9-04.Paths 文件系统
树形结构:
java11
查一查是谁实现的
拼接 resolve,pathof
9-05.Files
是目录还是文件还是不存在?
这里的手法是直接抛出去
没有现成的方法,只能遍历,返回一个流
函数内还要抛,要抛只能抛到接口里,但没法改,只能自己处理
先删文件,删完文件删相应目录,正好是倒序
把一个指定文件转成字节
直接用输入流创建文件