文件与IO(2)

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

相关推荐
泡海椒8 小时前
JQuick-Excel VALIDATION 实战:用作用范围约束 Excel 导入校验
开发语言·python·excel
逐米时代8 小时前
远程运维诊断减少到场率
java·服务器·前端
禾小西8 小时前
Redis AOF 日志:宕机了,如何避免数据丢失?
java·redis·mybatis
xuxigifxfh9 小时前
HJ11 数字颠倒
java·开发语言·华为机考
wno7049 小时前
Spring Boot整合Quartz
java·spring boot·后端
一只旭宝9 小时前
数据结构与算法复习手册:从写过,到讲清楚
开发语言·数据结构·c++·算法
百度一下吧9 小时前
断网后 WebView 加载单页面应用:页面跳转 JS 加载失败的处理方案
开发语言·javascript·ecmascript
步行cgn9 小时前
MySQL 报错:Access denied for user ‘root‘@‘localhost‘ 详解
java·数据库·spring
百事牛科技9 小时前
RAR如何加密码:三种场景一次说清
windows·winrar
神仙别闹9 小时前
基于C语言开发的捕捉流星小游戏
c语言·开发语言