java第九章IO流与文件操作


java第九章IO流与文件操作

9-01.IOStream

java第九章IO流与文件操作
就把他看成一个源,获取它的流

java第九章IO流与文件操作
类似于集合,有抽象后相同的操作,也有独立的操作方法
屏蔽掉了输入输出地方的不同,专注于统一的操作方法,
java第九章IO流与文件操作
只有01,但保存还是用字节,会好很多
java第九章IO流与文件操作

java第九章IO流与文件操作
你好:两个字6个字节
java第九章IO流与文件操作

java第九章IO流与文件操作

9-02.AutoCloseable

概念,现在讲实现:
(实际上是用来描述这个字节的十进制整数)
字节数组输入流:一次读多个字节

java第九章IO流与文件操作
java第九章IO流与文件操作
也是没有就自动创建
读入的那个字节是-1时结束(字节不能是负数)
for这里不合适
建一个变量作缓存
异常要么catch掉要么抛出

输入输出流一定要关闭,他是资源,要手动关闭

java第九章IO流与文件操作
这种情况,没有对应盘符,会抛异常,会未关闭资源,所以先不抛,先catch住,放finally

java第九章IO流与文件操作

还要注意,int或out出异常时没创建出来
java第九章IO流与文件操作
这样就很啰嗦
java第九章IO流与文件操作

java第九章IO流与文件操作

java第九章IO流与文件操作

java第九章IO流与文件操作

java7提供try-with-resources Statement (try块)

很像open with
java第九章IO流与文件操作
补充
java第九章IO流与文件操作

java第九章IO流与文件操作
java第九章IO流与文件操作
会回去调用一个自动关闭
java第九章IO流与文件操作

java第九章IO流与文件操作

java第九章IO流与文件操作

java第九章IO流与文件操作

P9-03.ByteArrayBuffer

之前时按十进制数,这里是直接读到字节数组中
java第九章IO流与文件操作
直接按读的长度写
java第九章IO流与文件操作
没指定长度,最后一次读入5,后面上一次留下来的三个脏数据
java第九章IO流与文件操作

java9提供自动的了新方法了,直接把输入流转移到输出流,不用自己写缓冲了

java第九章IO流与文件操作

底层其实一样hhhhh,但这个for用法挺有意思(11的用的for)

java第九章IO流与文件操作
有点老了,直接讲新的(下面2个)

word文档这些一个都不好使

java第九章IO流与文件操作
会直接返回整个数组,整个引用接着就行,还可以在后面填编码方式(字符集name)

java第九章IO流与文件操作
java第九章IO流与文件操作
java第九章IO流与文件操作

java有默认字符集,直接叫个名不太稳定

java第九章IO流与文件操作

java第九章IO流与文件操作

P9-04.Paths 文件系统

树形结构:
java第九章IO流与文件操作

java第九章IO流与文件操作

java第九章IO流与文件操作

java第九章IO流与文件操作

java第九章IO流与文件操作

java11

java第九章IO流与文件操作

java第九章IO流与文件操作
查一查是谁实现的
java第九章IO流与文件操作

拼接 resolve,pathof

java第九章IO流与文件操作

java第九章IO流与文件操作

9-05.Files

java第九章IO流与文件操作

是目录还是文件还是不存在?

java第九章IO流与文件操作

java第九章IO流与文件操作
这里的手法是直接抛出去
java第九章IO流与文件操作

java第九章IO流与文件操作

java第九章IO流与文件操作

java第九章IO流与文件操作

java第九章IO流与文件操作

没有现成的方法,只能遍历,返回一个流

java第九章IO流与文件操作
函数内还要抛,要抛只能抛到接口里,但没法改,只能自己处理
java第九章IO流与文件操作
先删文件,删完文件删相应目录,正好是倒序java第九章IO流与文件操作

java第九章IO流与文件操作

java第九章IO流与文件操作
把一个指定文件转成字节
java第九章IO流与文件操作

直接用输入流创建文件
java第九章IO流与文件操作