1.1 File类的概述
数据的存储:计算机中的硬盘和计算机中的内存
计算机中的硬盘:好处是可以持久化存储数据,当计算机断电了,数据依然可以在下次开机的时候进行读取和使用。弊端是相较于内存来说,读取和存储数据速度慢一些.
计算机中的内存:好处是存储数据和读取数据的速度会变的非常快。弊端是相较于硬盘来说,内存断电了或者程序停止了存储在内存中的数据就会消失。
通过File类与IO流进行搭配使用就可以通过Java代码将数据从内存写入到硬盘文件 或者从硬盘文件读取到内存中。
从硬盘文件中读取数据 将数据写入到硬盘文件中。离不开文件这两个字。要操作文件就必须知道这个文件在什么地方,在Java中万物皆对象,在计算上的文件也可以使用Java中的一个对象来表示。
File类就是文件和目录路径名的抽象表示形式。
主要用于文件和目录的创建、查找和删除等操作。也就是说File类可以表示一个文件也可以表示一个文件夹,我们可以通过操作File对象提供的相关方法对它所表示的文件/文件夹进行操作。
1.2 File类的构造方法
public File(String pathname) :通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例。
public File(String parent, String child) :从父路径名字符串和子路径名字符串创建新的 File实例。
public File(File parent, String child):从父抽象路径名和子路径名字符串创建新的 File实例。
最后输出结果都是一样的;
注意事项:File封装的对象仅仅是一个路径。他可以是存在的,也可以是不存在的。存在可以操作,不存在可以创建。
1.3File类的判断方法
public boolean exists():此File表示的文件或者目录是否实际存在的。
public boolean isFile:此File是否是文件。
public boolean isdirectorr():此File表示的是否为目录;
File类的获取方法:
public String getAbsolutePath() :返回此File的绝对路径名字符串。(带盘符的路径)
public String getPath():将此File转换为路径名字符串。 (获取的是 封装路径)
public String getName():返回由此File表示的文件或目录的名称。
public long length():返回由此File表示的文件的长度。 不能获取目录的长度。
1.5相对路径和绝对路径:
绝对路径简单来说就是一个完整的路径,是从盘符开始走
相对路径就是我们在java里面写的路径,
1.6File类的创建和删除方法(相对比较重要)
public boolean createNewFile():当且仅当具有改名称的文件尚不存在时,创建一个新的文件。
public boolean delete():删除由此File表示的文件或者目录。
public boolean mkdir():创建一个单极文件夹。
public boolean mkdirs():创建一个多级文件夹。
注意:删除键需慎用:
File类的遍历方法:
public String [] list():返回一个String数组,储存的是File目录中所有的子文件或者子目录的名称。
public File[] listFiles():返回一个File数组,储存的是Flie目录中所有的子文件或者子目录的路径的File对象。
public String [] list()方法:
public File[] listFiles()方法:
注意事项:如果文件夹路径不存在或者没有访问权限,以上2个方法获取的时候会返回null,容易出现空指针异常。所以大家在遍历获取到的子文件和子目录之前,应该做非空判断
二.方法递归
2.1方法递归的概述:
递归简单来说就是创建一个方法然后自己一直调用自己。
递归的注意事项:递归要有出口不然就会报错其次就是递归的调用次数不宜过多
这就是递归的一个简单的形式。
下面来用递归做一个题
用递归求1到100的和。
这是递归打印的流程
当然我们也可以用for循环打印这算是,接下来是递归的主要用法。
现在是用递归打印某个文件所有的文件:上代码。
完结。。。