File 类
-
java.io.File 类:文件和目录路径名的抽象表示形式,与平台无关
-
File 能新建、删除、重命名文件和目录,但 File 不能访问文件内容本身。如果需要访问文件内容本身,则需要使用 输入/输出流(I/O流)。
-
File 对象可以作为参数传递给流的构造函数
-
File 类的常见构造方法如下:
-
public File(String pathname)
以 pathname 为路径创建 FIle 对象,可以是绝对路径或者相对路径,如果 pathname 是相对路径,则默认的当前路径在系统属性 user.dir 中存储。
// 对象 f1 就是 test.txt 文件 File f1 = new File("D:\\JAVA\\Java 基础入门\\IO 流\\test\\text.txt"); // 在文件路径中 \ 表示路径的分隔符,但是在 java 编程中 \ 表示转义符 // 在 java 中 \\ 或者 / 才是文件的分隔符 File f2 = new File("D:/JAVA/Java 基础入门/IO 流/test/text.txt");
-
public File(String parent, String chile)
以 parent 为父路径,child 为子路径创建 File 对象。
// 对象 f3 也是 test.txt 文件 File f3 = new File("D:\\JAVA\\Java 基础入门","IO 流\\test\\text.txt");
-
-
File 的静态属性 String separator 存储了当前系统的路径分隔符。
-
在 UNIX 中,此字段为’/’,在 Windows 中为’\\’
访问文件名
-
getName():获取当前文件名或者文件夹名称
//输出当前文件名或者文件夹名称 System.out.println(f.getName);
-
getPath():获取当前文件或者文件夹的路径,就是 new File 的时候写的路径
//输出文件或者文件夹的路径 System.out.println(f1.getPath());
-
getAbsolutePath():获取文件或文件夹的绝对路径,如果是相对路径,会自动补齐
File f4 = new File("src\\com\\aze\\io\\fileclass\\Demo01.java");//这里使用相对路径创建 File 对象 // 获取文件或者文件夹的绝对路径 System.out.println(f4.getAbsolutePath());
-
getAbsoluteFile():返回一个用当前文件的绝对路径构建的 File 对象
System.out.println(f4); // 返回一个用当前文件的绝对路径构建的 File 对象 System.out.println(f4.getAbsoluteFile());
-
getParent():返回当前文件或者文件夹的父级路径
// 返回当前文件或者文件夹的父级路径
System.out.println(f1.getParent());
System.out.println(f4.getParent());
-
renameTo(new File(“newName”)):给文件或者文件夹重命名
// 给文件或者文件夹重命名 f1.renameTo(new File("D:\\JAVA\\Java 基础入门\\IO 流\\test\\01.txt"));
文件检测
-
exists():判断文件或者文件夹是否存在
// 判断文件或者文件夹是否存在 System.out.println(f1.exists());
-
canRead():判断文件或者文件夹是否可读
// 判断文件或者文件夹是否可读 System.out.println(f1.canRead());
-
canWrite():判断文件或者文件夹是否可写
// 判断文件或者文件夹是否可写 System.out.println(f1.canWrite());
-
isFile():判断当前 File 对象是否是一个文件
// 判断当前的 File 对象是否是一个文件 System.out.println(f1.isFile());
-
isDirectory():判断当前 File 对象是否是一个文件夹
// 判断当前的 File 对象是否是一个文件夹 System.out.println(f1.isDirectory());
获取常规文件信息
-
lastModified():获取文件最后的修改时间,返回最后修改时间的毫秒数
// 获取文件的最后修改时间,返回的是毫秒数 System.out.println(f1.lastModified());
-
length():获取文件的长度,单位为字节数
// 获取文件的长度,单位是字节数 System.out.println(f1.length());
文件相关操作
-
createNewFile():创建文件
//创建一个 File new File 的文件不存在 File f1 = new File("D:\\JAVA\\Java 基础入门\\IO 流\\test\\demo.txt"); if (!f1.exists()) { //判断文件是否存在,如果不存在,则执行以下代码 //捕获异常 try { //创建新的文件 f1.createNewFile(); } catch (IOException e) { e.printStackTrace(); } } //判断文件是否存在 System.out.println(f1.exists());
-
delete():删除文件
//删除文件 f1.delete(); System.out.println(f1.exists());//判断文件是否存在
目录相关操作
-
mkdir():创建单层目录,只能创建一层目录
if (!f1.exists()) {//判断目录是否存在,如果不存在,则执行 //创建目录 f1.mkdir(); } System.out.println(f1.exists());
-
mkdirs():创建多层目录,如果不想目录一层一层创建,就直接创建多层目录
File f2 = new File("D:\\JAVA\\Java 基础入门\\IO 流\\test\\a\\b\\c"); if (!f2.exists()) {//判断目录是否存在,如果不存在,则执行 //创建多层目录 f2.mkdirs(); }
-
list():返回当前目录下的文件和文件夹
File f3 = new File("D:\\JAVA\\Java 基础入门\\IO 流\\test"); // list 返回当前文件夹下的文件和文件夹 String[] sf3 = f3.list(); //遍历当前文件夹下的子集(所有的文件和文件夹) for (String s : sf3) { System.out.println(s); }
-
listFilee():返回当前文件夹下的子集的 File 对象,包括了文件和文件夹
//返回当前文件夹下的子集的 File 对象,包括了文件和文件夹 File[] files = f3.listFiles(); //遍历 for (File f : files) { System.out.println(f); }