1.基础回顾+面试

1.1File类

概述:

File类:代表操作系统的文件对象

File类:是用来操作系统的文件对象的,删除文件,获取文件信息,创建文件(文件夹)

广义来说操作系统认为文件包含:文件和文件夹

1.2File类创建文件对象API

  • 包:java.io.File
  • 构造器:
  • public File(String pathname):根据路径获取文件对象
  • public File(String parent,String child):根据父路径文件名称获取文件对象
  • public File(File parent,String child)

File类创建对象的格式

File f = new File("绝对路径/相对路径");
  • 绝对路径:从磁盘的盘符一路走到目的位置的路径
  • 绝对路径依赖具体的环境,一旦脱离环境,代码可能出错
  • 相对路径:不带盘符的(重点)
  • 默认是直接相对到工程目录下寻找文件的
  • 能用相对路径就尽量使用,可以跨平台运行项目

文件路径分隔符

  • 使用正斜杠: /
  • 使用反斜杠:\ \
  • 使用分隔符API: File.separator

1.创建文件对象,使用绝对路径

File f1 = new File("D:/itcast/图片资源/beautiful.jpg");


File f1 = new File("D:"+File.separator+"itcast"+File.separator+"图片资源"+File.separator+"beautiful.jpg");

File f1 = new File("D:\\itcast\\图片资源\\beautiful.jpg");
System.out.println(f1.length()); // 获取文件的大小,字节大小

2.创建文件对象,使用相对路径

File f2 = new File("Day09Demo/src/dlei01.txt");
System.out.println(f2.length());

3.创建文件对象:代表文件夹

File f3 = new File("D:\\itcast\\图片资源");
System.out.println(f3.exists()); // 判断路径是否存在!!

1.3File类的获取功能API

  • public String getAbsolutePath():返回此文件的绝对路径名字符串
  • public String getPath(): 获取创建文件对象的时候用的路径
  • public String getName(): 返回由此File表示的文件或目录的名称
  • public long length(): 返回由此File表示的文件的长度
public class FileDemo {
    public static void main(String[] args) {
        // 1.绝对路径创建一个文件对象
        File f1 = new File("D:/itcast/图片资源/meinv.jpg");
        // a.获取它的绝对路径。
        System.out.println(f1.getAbsolutePath());
        // b.获取文件定义的时候使用的路径。
        System.out.println(f1.getPath());
        // c.获取文件的名称:带后缀。
        System.out.println(f1.getName());
        // d.获取文件的大小:字节个数。
        System.out.println(f1.length());

        System.out.println("------------------------");

        // 2.相对路径
        File f2 = new File("Day09Demo/src/dlei01.txt");
        // a.获取它的绝对路径。
        System.out.println(f2.getAbsolutePath());
        // b.获取文件定义的时候使用的路径。
        System.out.println(f2.getPath());
        // c.获取文件的名称:带后缀。
        System.out.println(f2.getName());
        // d.获取文件的大小:字节个数。
        System.out.println(f2.length());
    }
}

1.4File类判断功能API

  • public boolean exists(): 此File表示的文件或目录是否实际存在
  • public boolean isDirectory(): 此File表示的是否为目录
  • public boolean isFile(): 此File表示的是否为文件
public class FileDemo {
    public static void main(String[] args) {
        // 1.文件对象。
        File f1 = new File("D:\\itcast\\图片资源\\meinv.jpg");
        // a.判断文件路径是否存在
        System.out.println(f1.exists()); // true
        // b.判断文件对象是否是文件,是文件返回true ,反之
        System.out.println(f1.isFile()); // true
        // c.判断文件对象是否是文件夹,是文件夹返回true ,反之
        System.out.println(f1.isDirectory()); // false

        // 1.文件对象。
        File f2 = new File("D:\\itcast\\图片资源");
        // a.判断文件路径是否存在
        System.out.println(f2.exists()); // true
        // b.判断文件对象是否是文件,是文件返回true ,反之
        System.out.println(f2.isFile()); // false
        // c.判断文件对象是否是文件夹,是文件夹返回true ,反之
        System.out.println(f2.isDirectory()); // true
    }
}

1.5File类创建和删除API

  • public boolean createNewFile(): 当且仅当具有该名称的文件尚不存在时,创建一个新的空文件(几乎不用,因为以后文件都是自动创建的)
  • public boolean delete(): 删除此File表示的文件或目录(只能删除空目录)
  • public boolean mkdir(): 创建由此File表示的目录(只能创建一级目录)
  • public boolean mkdirs(): 可以创建多级目录(建议使用)
public class FileDemo {
    public static void main(String[] args) throws IOException {
        File f = new File("Day09Demo/src/dlei02.txt");
        // a.创建新文件,创建成功返回true ,反之
        System.out.println(f.createNewFile());

        // b.删除文件或者空文件夹
        System.out.println(f.delete());
        // 不能删除非空文件夹,只能删除空文件夹
        File f1 = new File("D:/itcast/aaaaa");
        System.out.println(f1.delete());

        // c.创建一级目录
        File f2 = new File("D:/itcast/bbbb");
        System.out.println(f2.mkdir());

        // d.创建多级目录
        File f3 = new File("D:/itcast/e/a/d/ds/fas/fas/fas/fas/fas/fas");
        System.out.println(f3.mkdirs());
    }
}

1.6File目录的遍历

  • public String[] list(): 获取当前目录下所有的"一级文件名称"到一个字符串数组中去返回
  • public File[] listFiles(): 获取当前目录下所有的”一级文件对象“到一个文件对象数组中去(重点,常用)
public class FileDemo {
    public static void main(String[] args) {
        File dir = new File("D:\\itcast");
        // a.获取当前目录对象下的全部一级文件名称到一个字符串数组返回。
        String[] names = dir.list();
        for (String name : names) {
            System.out.println(name);
        }
        // b.获取当前目录对象下的全部一级文件对象到一个File类型的数组返回。
        File[] files = dir.listFiles();
        for (File file : files) {
            System.out.println(file.getAbsolutePath());
        }

        // ---------拓展------------
        File f1 = new File("D:\\itcast\\图片资源\\beautiful.jpg");
        long time = f1.lastModified(); // 最后修改时间!
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        System.out.println(sdf.format(time));
    }
}