java知识之----File

本文深入讲解Java中的File类,涵盖构造方法、常用方法如获取路径、判断文件类型、创建和删除文件,以及如何使用文件过滤器优化目录遍历。适合初学者和开发者快速掌握File类的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

java.io.File 类是文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找和删除等操作。 

一:构造方法:

public File(String pathname) :通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例。

public File(String parent, String child) :从父路径名字符串和子路径名字符串创建新的 File实例。

public File(File parent, String child) :从父抽象路径名和子路径名字符串创建新的 File实例。 

 二:常用方法:

获取的方法:

public String getAbsolutePath() :返回此File的绝对路径名字符串。

public String getPath() :将此File转换为路径名字符串。

public String getName() :返回由此File表示的文件或目录的名称。

public long length() :返回由此File表示的文件的长度。 

绝对路径:从盘符开始的路径,这是一个完整的路径。

相对路径:相对于项目目录的路径,这是一个便捷的路径,开发中经常使用。

 判断功能的方法 :

public boolean exists() :此File表示的文件或目录是否实际存在。

public boolean isDirectory() :此File表示的是否为目录。

public boolean isFile() :此File表示的是否为文件。

删除功能的方法:

public boolean createNewFile() :当且仅当具有该名称的文件尚不存在时,创建一个新的空文件。

public boolean delete() :删除由此File表示的文件或目录。

public boolean mkdir() :创建由此File表示的目录。

public boolean mkdirs() :创建由此File表示的目录,包括任何必需但不存在的父目录。
 

目录遍历:

public String[] list() :返回一个String数组,表示该File目录中的所有子文件或目录。
public File[] listFiles() :返回一个File数组,表示该File目录中的所有的子文件或目录。 

注意:调用listFiles方法的File对象,表示的必须是实际存在的目录,否则返回null,无法进行遍历。 

三:文件过滤器优化

java.io.FileFilter 是一个接口,是File的过滤器。 该接口的对象可以传递给File类的 listFiles(FileFilter) 作为参数, 接口中只有一个方法。

boolean accept(File pathname) :测试pathname是否应该包含在当前File目录中,符合则返回true。

// 搜索 D:\aaa 目录中的 .java 文件
public class DiGuiDemo4 {  
   public static void main(String[] args) {  
       File dir = new File("D:\\aaa");       
          printDir2(dir);  
   }      
      public static void printDir2(File dir) 
    {     
       // 匿名内部类方式,创建过滤器子类对象           

         File[] files = dir.listFiles(new FileFilter() {          
               @Override          
               public boolean accept(File pathname)
             { 

                     return pathname.getName().endsWith(".java")||pathname.isDirectory(); 
      }        
 });      
      // 循环打印          
          for (File file : files) {           
              if (file.isFile()) {             
                    System.out.println("文件名:" + file.getAbsolutePath());      
               } else {        
                 printDir2(file);         
    }     
   }   
  } 
} 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值