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

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐