IO系列(一)File类|Java基础

这是我参与8月更文挑战的第10天,活动详情查看:8月更文挑战

File类概述和构造方法【应用】

File类介绍

  • 它是文件和目录路径名的抽象表示
  • 文件和目录是可以通过File封装成对象的
  • 对于File而言,其封装的并不是一个真正存在的文件,仅仅是一个路径名而已。它可以是存在的,也可以是不存在的。将来是要通过具体的操作把这个路径的内容转换为具体存在的

File类构造方法

方法名 说明
File(String pathname) 通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例
File(String parent, String child) 从父路径名字符串和子路径名字符串创建新的 File实例
File(File parent, String child) 从父抽象路径名和子路径名字符串创建新的 File实例
public File(URI uri) 通过将给定的 file: URI 转换成一个抽象路径名来创建一个新的 File 实例。
public class FileLearn {
  public static void main(String[] args) {
      //File(String pathname):通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例。
      File f1 = new File("D:\itcast\java.txt");
      System.out.println(f1);
      //File(String parent, String child):从父路径名字符串和子路径名字符串创建新的File实例。
      File f2 = new File("D:\itcast","java.txt");
      System.out.println(f2);
      //File(File parent, String child):从父抽象路径名和子路径名字符串创建新的 File实例。
      File f3 = new File("D:\itcast");
      File f4 = new File(f3,"java.txt");
      System.out.println(f3);
      System.out.println(f4);
  }
}
复制代码

capture_20210810233355717.bmp

File类创建功能

方法名 说明
public boolean createNewFile() 当具有该名称的文件不存在时,创建一个由该抽象路径名命名的新空文件
public boolean mkdir() 创建由此抽象路径名命名的目录
public boolean mkdirs() 创建由此抽象路径名命名的目录,包括任何必需但不存在的父目录
//需求1:我要在E:\Shixf目录下创建一个文件java.txt
File f1 = new File("D:\Shixf\HelloWork.txt");
try {
  System.out.println(f1.createNewFile());
} catch (IOException e) {
  e.printStackTrace();
}
System.out.println("--------");

//需求2:我要在E:\Shixf目录下创建一个目录JavaSE
File f2 = new File("D:\Shixf\JavaSE");
System.out.println("--------");

//需求3:我要在E:\Shixf目录下创建一个多级目录JavaWEB\HTML
File f3 = new File("D:\Shixf\JavaWEB\HTML");
System.out.println(f3.mkdirs());
System.out.println("--------");

//需求4:我要在E:\Shixf目录下创建一个文件javase.txt
File f4 = new File("D:\Shixf\javase.txt");
try {
  System.out.println(f4.createNewFile());
} catch (IOException e) {
  e.printStackTrace();
}
复制代码

capture_20210810234550366.bmp

image.png

File类判断和获取功能

判断功能

方法名 说明
public boolean isDirectory() 测试此抽象路径名表示的File是否为目录
public boolean isFile() 测试此抽象路径名表示的File是否为文件
public boolean exists() 测试此抽象路径名表示的File是否存在

获取功能

方法名 说明
public String getAbsolutePath() 返回此抽象路径名的绝对路径名字符串
public String getPath() 将此抽象路径名转换为路径名字符串
public String getName() 返回由此抽象路径名表示的文件或目录的名称
public String[] list() 返回此抽象路径名表示的目录中的文件和目录的名称字符串数组
public File[] listFiles() 返回此抽象路径名表示的目录中的文件和目录的File对象数组
//创建一个File对象,我在项目下创建了一个File的文件夹包含一个HelloWord.txt文件
File f = new File("File\HelloWord.txt");

//public boolean isDirectory():测试此抽象路径名表示的File是否为目录
//public boolean isFile():测试此抽象路径名表示的File是否为文件
//public boolean exists():测试此抽象路径名表示的File是否存在
System.out.println(f.isDirectory());
System.out.println(f.isFile());
System.out.println(f.exists());

//public String getAbsolutePath():返回此抽象路径名的绝对路径名字符串
//public String getPath():将此抽象路径名转换为路径名字符串
//public String getName():返回由此抽象路径名表示的文件或目录的名称
System.out.println(f.getAbsolutePath());
System.out.println(f.getPath());
System.out.println(f.getName());
System.out.println("--------");

//public String[] list():返回此抽象路径名表示的目录中的文件和目录的名称字符串数组
//public File[] listFiles():返回此抽象路径名表示的目录中的文件和目录的File对象数组
File f2 = new File("D:\Shixf");

String[] strArray = f2.list();
for(String str : strArray) {
    System.out.println(str);
}
System.out.println("--------");

File[] fileArray = f2.listFiles();
for(File file : fileArray) {
    //            System.out.println(file);
    //            System.out.println(file.getName());
    if(file.isFile()) {
        System.out.println(file.getName());
    }
}
复制代码

image.png

File类删除功能

方法名 说明
public boolean delete() 删除由此抽象路径名表示的文件或目录
//需求1:在当前模块目录下创建HelloWord.txt文件
File f1 = new File("File\HelloWord.txt");
try {
  System.out.println(f1.createNewFile());
} catch (IOException e) {
  e.printStackTrace();
}

//需求2:删除当前模块目录下的HelloWord.txt文件
System.out.println(f1.delete());
System.out.println("--------");

//需求3:在当前模块目录下创建Shixf目录
File f2 = new File("File\Shixf");
System.out.println(f2.mkdir());

//需求4:删除当前模块目录下的Shixft目录
System.out.println(f2.delete());
System.out.println("--------");

//需求5:在当前模块下创建一个目录Shixf,然后在该目录下创建一个文件HelloWord.txt
File f3 = new File("File\Shixf");
System.out.println(f3.mkdir());
File f4 = new File("File\Shixf\HelloWord.txt");
try {
  System.out.println(f4.createNewFile());
} catch (IOException e) {
  e.printStackTrace();
}

//需求6:删除当前模块下的目录HelloWord.txt
System.out.println(f4.delete());
System.out.println(f3.delete());
复制代码

image.png

  • 绝对路径和相对路径的区别

    绝对路径:完整的路径名,不需要任何其他信息就可以定位它所表示的文件。例如:D:\Shixf\java.txt

    相对路径:必须使用取自其他路径名的信息进行解释。例如:File\HelloWord.txt

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享