1.文件系统
文件系统属于操作系统的一部分。
1.文件系统操作
文件系统操作指的是编写代码,对文件进行创建,删除,复制,移动,查看等。
文件资源管理器是操作系统自带的软件,运行时调用文件系统提供的函数,用来管理磁盘上的文件/文件夹。
2.文件内容操作
读操作、写操作。
文件系统提供函数,Java对上述函数进行了封装。
2.File类(java.io.file)
IO输入输出是针对CPU而言的
属性

构造方法

一个File对象,就对应一个文件/文件夹。构造参数可以是绝对路径,也可以是相对路径。(相对路径的基准路径取决于程序运行时所在的工作目录)。
基准路径所在的位置:
File f1=new File("D:/test/A.txt");//绝对路径
File f2=new File("./test.txt");//相对路径
其它方法

文件不一定存在,File对象能新建文件


1.创建文件


创建文件失败的原因:空间不够、权限不足
2.删除文件
正常退出,例如:word临时文件自动删除;
异常退出,例如:编辑word文件时电脑突然断电,文件未保存,临时文件保存在硬盘上,下次启动word重新读取(但不可靠)

警告:方法有返回值,忽略了返回值
deleteOnExit在JVM进程结束后才会删除
3.判断


4.对目录的操作

5.特殊的目录(回收站)
每个盘下有一个这样的目录

6.创建一级目录


7.创建多级目录

8.重命名和移动renameTo
renameFile


9.移动的同时rename

对于文件移动,如果操作时源路径和目标路径是在同一个硬盘上,时间复杂度O(1)。
如果不是一个盘,时间复杂度为O(n)。
查看读写权限
3.文件内容的读写操作
(stream)流对象(一组类):操作系统提供了文件操作相关的api函数,Java对api进行封装,封装的内容就叫做流对象.
Java标准库中流对象分为字节流和字符流
字节流:读写二进制文件
抽象类:InputStream输入。子类FileInputStream
OutputStream输出。子类OutputStream
字符流:读写文本文件
抽象类:Reader输入。子类:FileReader
Writer输出。子类:FileWriter
1.字节流读写
读:FileInputStream:
异常:FileNotFoundExceeption
写:FileOutputStream
read()
一次读一个字节Byte,返回int。因为Java中的Byte是有符号的,-128~127,如果文件中存有0xFF,转为有符号byte是-1,无法区分是文件读到末尾标记-1还是文件内容,所以返回无符号0~255的int,文件结束返回-1
返回值-1表示文件结束;

read(byte\[\] b):读满数组,批量读取。底层会利用字节对齐,效率高
byte\[\] b是输出型参数。
输出型参数:比如给一个方法传一个空的数组,这个方法最终返回这个数组。
假设b数组的长度为1024,read尽量读1024;如果数据不足1024,read有多少读多少。
有多少读多少。
返回值是实际读取的长度。

read(byte\[\] b,int off,int len):读数组,从offset下标开始,最多读len个
len预期读多少字节,off(offset):偏移量,当前位置相对于数组开头位置的下标差值

控制以16进制输出:一个16进制数字对应4个bit位,两个16进制数字,就是8bit,等于1个Byte