NO.27 文件操作

java.io.File用于表示文件(目录),也就是说程序员可以通过File类在程序中操作硬盘上的文件和目录。

java.io.File:File的每一个实例用于表示文件系统中的一个文件或目录

使用File可以:

1)访问该文件或目录的属性信息(名字,大小,修改日期等)

2)操作文件或目录(创建,删除)

3)若表示的是目录,可以查看该目录中的子项信息

但是不能访问一个文件中的数据

表示文件的相关方法:

NO.27 文件操作_第1张图片
文件已存在时

创建新文件:

NO.27 文件操作_第2张图片
创建文件操作

删除一个文件:

NO.27 文件操作_第3张图片
删除单个文件

File表示目录时:

创建目录方法:

NO.27 文件操作_第4张图片
创建一个目录
NO.27 文件操作_第5张图片
创建多级目录

删除目录:

NO.27 文件操作_第6张图片
删除一个目录
NO.27 文件操作_第7张图片
删除多级目录(主要)

这里有递归调用,就是方法内部调用自己方法的现象称为递归调用,递归现象就是允许程序执行到某个阶段时整体重新来过。

使用递归需要注意:

1)方法内部调用自己方法不能100%成立,否则是死循环。

2)递归层次尽量少,因为递归消耗内存可观,运行效率差。

获取一个目录中的所有子项方法:

NO.27 文件操作_第8张图片
查看当前目录的子项

文件过滤器过滤子项:File提供了一个重载的listFiles方法,该方法可以指定一个文件过滤器,这样可以将该目录中所有满足过滤器要求的子项获取到。

NO.27 文件操作_第9张图片
获取当前目录下的文件

下面介绍一个可以读写文件数据的类,Java提供了一个可以对文件随机访问的操作,访问包括读和写操作。该类名为RandomAccessFile。该类的读写是基于指针的操作。

创建文件:

NO.27 文件操作_第10张图片

读取文件数据:

NO.27 文件操作_第11张图片

文件复制(单字节复制):

NO.27 文件操作_第12张图片
速度特别慢,不推荐

文件复制(多字节一起复制):随机读写效率差,块读写效率高。所以若希望提高读写效率,可以通过提高每次读写的数据量减少读写次数来达到。

NO.27 文件操作_第13张图片
速度很快,或许比window自带的复制还要快

文件指针操作:

1)使用RAF读写基本类型数据,以及RAF对指针的操作:

NO.27 文件操作_第14张图片
获取指针位置和写出int、long、double值
NO.27 文件操作_第15张图片
移动指针读取int、long、double值

int skipBytes(int n):方法可以尝试跳过输入的 n 个字节以丢弃跳过的字节,返回跳过的实际字节数。如果 n 为负数,则不跳过任何字节。

2)写字符串:

NO.27 文件操作_第16张图片

读字符串:

NO.27 文件操作_第17张图片

你可能感兴趣的:(NO.27 文件操作)