详细的描述了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