1063 字
5 分钟
JavaSE02-Java中的文件与方法递归与IO流
2023-06-24
2023-11-25

详细的描述了Java中 File类的使用,一步一步剖析了IO流如何创建、如何使用以及其中的注意事项。

File类使用:详细的描述了使用File的对象操作文件,如:删除、获取文件信息、创建文件夹等
方法递归:详细的描述了递归算法思想并能完成常见递归题目,以及文件搜索
字符集:程序中经常要读取文件中的数据,知道数据的底层形式才能够去学习如何读写数据
IO流的作用:使用IO流完成文件数据的读写等操作
字节流与字符流:数据的类型很多,要学会选择不同的流进行读写操作

File#

File类在包java.io.File下、代表操作系统的文件对象(文件、文件夹)。
File类提供了诸如∶定位文件,获取文件本身的信息、删除文件、创建文件(文件夹)等功能
但是不能读写文件内容。

File类创建对象API

方法名称说明
public File(String pathname)根据文件路径创建文件对象
public File(String parent, String child)从父路径名字符串和子路径名字符串创建文件对象
public File(File parent, String child)根据父路径对应文件对象和子路径名字符串创建文件对象

案例:查询文件的大小#

import java.io.File;
public class Main {
public static void main(String[] args) {
// 1.创建一个FILE文件,指代某个具体的文件
File f1 = new File("D:\\test.txt");
File f2 = new File("D:" + File.separator + "test.txt"); //跨平台写法,不同系统的文件分隔符不同
System.out.println(f1.length()); //文件大小
System.out.println(f2.length());
}
}

注意

  • 查询文件夹大小为文件夹大小,不包括文件夹内部内容大小。
  • File对象既可以代表文件、也可以代表文件夹。
  • File封装的对象仅仅是一个路径名,这个路径可以是存在的,也允许是不存在的。

FILE类的常用方法#

File提供的判断文件类型、获取文件信息功能#

方法名称说明
public boolean exists()判断当前文件对象,对应的文件路径是否存在,存在返回true
public boolean isFile()判断当前文件对象指代的是否是文件,是文件返回true,反之。
public boolean isDirectory()判断当前文件对象指代的是否是文件夹,是文件夹返回true,反之。
public string getName()获取文件的名称((包含后缀)
public long length()获取文件的大小,返回字节个数
public long lastModified()获取文件的最后修改时间。
public string getPath()获取创建文件对象时,使用的路径
public string getAbsolutePath()获取绝对路径

FILE提供的创建文件,删除文件#

方法名称说明
public boolean preateNewFile()创建一个新文件(文件内容为空,创建成功返回true,反之。
public boolean mkdir()用于创建文件夹,注意:只能创建一级文件夹
public boolean mkdirs()用于创建文件夹,注意:可以创建多级文件夹
public boolean delete()删除文件,或者空文件,注意:不能删除非空文件夹。

注意:delete方法默认只能删除文件和空文件夹,删除后的文件不会进入回收站。

FILE提供的遍历文件夹#

方法名称说明
public string[] list()获取当前目录下所有的”一级文件名称”到一个字符串数组中去返回。
public File[] listFiles()获取当前目录下所有的”—级文件对象”到一个文件对象数组中去返口

使用listFiles方法时的注意事项:

  • 当主调是文件,或者路径不存在时,返回null
  • 当主调是空文件夹时,返回一个长度为O的数组
  • 当主调是一个有内容的文件夹时,将里面所有一级文件和文件夹的路径放在File数组中返回
  • 当主调是一个文件夹,且里面有隐藏文件时,将里面所有文件和文件夹的路径放在File数组中返回,包含隐藏文件
  • 当主调是一个文件夹,但是没有权限访问该文件夹时,返回null