2020 10.30曾宇欣

心得体会:

今天学的东西,比昨天的更难一点,但是还是在掌握之中。

知识点:

今日复习

File类方法:

判断是否存在:

public boolean exists()
    
public static void main(String[] args){
    File fod = new File("C:\\");
    System.out.print(fod.exists());
}

判断是否是文件:

public boolean isFile()
 
public static void main(String[] args){
    File fod = new File("C:\\");
    System.out.print(fod.isFile());
}

判断是否是文件夹(是否是目录):

public boolean isDirectory()
    
public static void main(String[] args){
    File fod = new File("C:\\");
    System.out.print(fod.isDirectory());
}

判断是否是隐藏文件:

public boolean isHidden()
    
public static void main(String[] args){
    File fod = new File("C:\\temp");
    System.out.print(fod.isHidden());
}

获取文件长度:

如果File实例所表示的路径是一个目录,则返回值是不确定的。如果File实例所表示的路径在磁盘上是不存在,则返回 0L 。

public long length()
    
public static void main(String[] args){
    File fod = new File("C:\\temp");
    System.out.print(fod.length());
}

获取项目列表:

  • 获取File实例所表示路径对应的目录中所有子目录名称及文件名称组成的数组(只输出文件名)

    public String[] list()
    public static void main(String[] args){
    File fod = new File("C:\\temp");
    String[] fileName = file.list();
    System.out.print(Arrays.toString());
    }
  • 获取File实例所表示的目录内所有目录和文件对应的File数组(带文件路径)

    public File[] listFiles()
    public static void main(String[] args){
    File fod = new File("C:\\temp");
    File[] fileName = fod.listFiles();
    for(File file1 : fileName){
    System.out.print(file1);
    }
    }

创建目录:

  • 创建单个子目录(使用该方法创建目录时,必须保证新目录的父目录是存在的,并且当前操作系统用户对该目录拥有写权限。)

    public static void main(String[] args){
      File file = new File("D:/ebook/斗破苍穹");
    file.mkdir();
    }
  • 创建多层次的目录

    public boolean mkdirs()
    public static void main(String[] args){
    File file = new File("D:/ebook/斗破苍穹");
    if(!file.exists()){
    file.mkdirs();
    }
    }

创建文件:

  • 当当前用户(操作系统用户)拥有对指定目录的写权限时,可以通过 createNewFile 方法在该目录中创

    建空文件。

    如果文件的路径不存在,创建文件时会抛出 java.io.IOException:系统找不到指定的路径 ,创建文件前要先确认路径是否存在。

    public boolean createNewFile()
    public static void main(String[] args){
    File file = new File("D:/ebook/斗破苍穹");
    file.createNewFile();
    }

删除目录或文件:

  • 删除指定File实例所表示路径对应的文件或目录

    public boolean delete()
    public static void main(String[] args){
    File file = new File("D:/ebook/斗破苍穹");
    file.delete();
    }

获取硬盘空间大小:

  • 获取抽象路径名所在分区的大小

    public long getTotalSpace()
    
  • 获取抽象路径名所在分区中未分配的字节数

    public long getFreeSpace()
    
  • 获取抽象路径名所在分区上可用于当前虚拟机的字节数

    public long getUsableSpace()
    
    public static void main(String[] args) {
      File file = new File("D:/temp"); 
    System.out.println("共:" + file.getTotalSpace()/1024/1024/1024 + "GB"); System.out.println("还剩:" + file.getFreeSpace()/1024/1024/1024 + "GB"); System.out.println("可分配:" + file.getUsableSpace()/1024/1024/1024 + "GB"); }

FilenameFilter方法:

  • FilenameFilter 接口中定义了一个 accept 方法用于实现对文件或目录的过滤

    public boolean accept(File dir, String name)
    
    • 第一个File类型参数类型的参数表示被筛选的文件或目录所在的目录
    • 第二个String类型的参数表示被筛选的文件或目录的名称
    public static void main(String[] args) {
      //文件名过滤器
    FilenameFilter fileter = new FilenameFilter() {
    @Override
    public boolean accept(File dir, String name) {
    return name.indexOf(".txt") >= 0;
    }
    };
    File file = new File("d:/temp");
    //所有的文件
    String[] strs = file.list();
    //过滤后的文件
    String[] fileNames = file.list(fileter); System.out.println(Arrays.toString(strs)); System.out.println(Arrays.toString(fileNames));
    }

FileFilter

通过 FileFilter 接口的实现类的实例可实现对文件或目录的过滤,不仅可以通过文件名称或目录名称

过滤,也可以通过文件长度(体积)、访问时间等属性来过滤。

public boolean accept(File fod)
  • File 类型的参数表示被筛选的文件或目录

  • 仅当 accept 方法返回 true 时,被筛选的文件或目录会保留在筛选后的列表中

public static void main(String[] args) {
    FileFilter filter = new FileFilter() {
        @Override
        public boolean accept(File pathname) {
            return pathname.lastModified() > 1572080255401L;
        }
    };
    File file = new File("d:/temp");
    File[] files = file.listFiles(filter);                                      System.out.println(Arrays.toString(file.listFiles()));  System.out.println(Arrays.toString(files)); }

标签

评论

this is is footer