服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Java教程 - Java File类常用方法与文件过滤器详解

Java File类常用方法与文件过滤器详解

2022-11-29 15:10LNORA Java教程

Java File类以抽象的方式代表文件名和目录路径名。该类主要用于文件和目录的创建、文件的查找和文件的删除等。File对象代表磁盘中实际存在的文件和目录。本篇文章我们来讲解File类的常用方法与文件过滤器

File类

File类用于封装一个路径,这个路径可以是从系统盘符开始的绝对路径,也可以是相对于当前目录的相对路径,File类内部封装的路径可以指向一个文件,也可以指向一个目录,在File类中提供了针对这些目录或文件的一些常规操作。

File类常用的构造方法

 File(String pathname)//通过指定的一个字符串类型的文件路径来创建一个新的File对象
 File(String parent,String child)//根据指定的一个字符串类型的父路径和一个字符串类型的子路径创建一个File对象
 File(File parent,String child)//根据指定的File类的父路径和字符串类型的子路径创建一个File对象

查看文件的相应信息

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
package JS;
 import java.io.File;
 public class XX {
     public static void main(String[] args) {
         File file=new File("example.txt");
         //获取文件名称
         System.out.println("文件名称:"+file.getName());
         //获取文件的相对路径
         System.out.println("文件的相对路径:"+file.getPath());
         //获取文件的绝对路径
         System.out.println("文件的绝对路径:"+file.getAbsolutePath());
         //获取文件的父路径
         System.out.println("文件的父路径:"+file.getParent());
         //判断文件是否可读
         System.out.println(file.canRead() ?"文件可读":"文件不可读");
         //判断文件是否可写
         System.out.println(file.canWrite() ?"文件可写":"文件不可写");
         //判断是否是同一个文件
         System.out.println(file.isFile() ?"是一个文件":"不是一个文件");
         //判断是否是同一个目录
         System.out.println(file.isDirectory() ?"文件是一个目录":"文件不是一个目录");
        //得到文件最后的修改时间
         System.out.println("最后修改时间为:"+file.lastModified());
         //得到文件的大小
         System.out.println("文件的大小为:"+file.length()+"bytes");
         //是否成功删除文件
         System.out.println("是否成功删除文件"+file.delete());
     }
 }

Java File类常用方法与文件过滤器详解

遍历目录下的文件

通过list()方法可以遍历某个指定目录下的所有文件名称

?
1
2
3
4
5
6
7
8
9
10
11
12
13
package JhiShi;
import java.io.File;
public class Example01 {
    public static void main(String[] args) throws Exception{
        File file=new File("C:\\Users\\lenovo\\IdeaProjects\\java se");
        if(file.isDirectory()){
            String[] names=file.list();
            for (String name:names){
                System.out.println(name);
            }
        }
    }
}

Java File类常用方法与文件过滤器详解

先通过File类里面的isDirectory()方法判断路径指向的是否为存在的目录,存在就调用list()方法,并且获得String类型的数组names,数组中包含这个目录下的所有文件的文件名,然后循环遍历数组的names,依次打印出每个文件的名字。

文件过滤器

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package JhiShi;
import java.io.File;
import java.io.FilenameFilter;
public class Example02 {
    public static void main(String[] args) throws Exception{
        File file=new File("C:\\Users\\lenovo\\IdeaProjects\\java se");
        FilenameFilter filter=new FilenameFilter() {
            @Override
            public boolean accept(File dir, String name) {
                File currFile=new File(dir,name);
                if(currFile.isFile()&&name.endsWith(".txt")){
                    return true;
                }else{
                    return false;
                }
            }
        };
        if(file.exists()){
            String[] lists=file.list(filter);
            for (String name:lists){
                System.out.println(name);
            }
        }
    }

Java File类常用方法与文件过滤器详解

对子目录进行遍历

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package JhiShi;
import java.io.File;
public class Example03 {
    public static void main(String[] args) throws Exception{
        File file=new File("C:\\Users\\lenovo\\IdeaProjects\\java se");
        fileDir(file);
    }
    public static void fileDir(String[] args) {
        File[]files=dir.listFiles();
        for (File file:files){
            if(file.isDirectory()){
                fileDir(file);
            }
            System.out.println(file.getAbsoluteFile());
        }
    }
}

通过一个静态方法fileDir(),用于接收一个表示目录的File对象,先调用listFile()方法把该目录下所有的子目录和文件存到一个File类型的数组files中,然后遍历数组files,并且对遍历对象进行判断,如果是目录就从新调用fileDir()方法进行递归,如果是文件则输出文件的路径。

删除文件及目录

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package JhiShi;
import java.io.File;
public class Example03 {
    public static void main(String[] args) {
        File file=new File("C:\\ABC");
        deleteDir(file); 
    }
    public static void deleteDir(String[] args) {
        if(dir.exists){
            File[]files=dir.listFiles();
            for(File file:files){
                if(files.isDirectory()){
                    deleteDir(file);
                }else{
                    file.delete();
                }
            }
            dir.delete();
        }
    }
}

定义了一个删除目录的静态方法deleteDir()来接收一个File类型的参数,调用listFiles()方法把这个目录下所有的子目录和文件保存到一个File类型的数组files中,然后遍历files,如果是目录从新调用deleteDir()方法进行递归,如果是文件则直接调用File的delete()方法删除,当删除完这个目录下的所有文件时,再删除这个目录。

注意:Java删除目录是从虚拟机直接删除而不是回收站,一旦删除无法恢复

到此这篇关于Java File类常用方法与文件过滤器详解的文章就介绍到这了,更多相关Java File类内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/m0_55749088/article/details/124102916

延伸 · 阅读

精彩推荐
  • Java教程java使用jdbc链接Oracle示例类分享

    java使用jdbc链接Oracle示例类分享

    本文为大家提供一个java使用jdbc链接Oracle的示例类,大家参考使用吧 ...

    java技术网2202019-10-27
  • Java教程Java常用工具类—集合排序

    Java常用工具类—集合排序

    这篇文章主要介绍了Java集合排序,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起...

    LSmurfs6292021-07-25
  • Java教程Java Swing实现记事本页面

    Java Swing实现记事本页面

    这篇文章主要为大家详细介绍了Java Swing实现记事本页面,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    大菜彩6322022-07-31
  • Java教程浅谈Java slf4j日志简单理解

    浅谈Java slf4j日志简单理解

    这篇文章主要介绍了浅谈Java日志简单理解,详细的介绍了slf4j的概念和使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来...

    Developer5162021-05-14
  • Java教程把Java程序转换成exe,可直接运行的实现

    把Java程序转换成exe,可直接运行的实现

    这篇文章主要介绍了把Java程序转换成exe,可直接运行的实现,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    棒棒的胖胖3812020-10-01
  • Java教程java中struts 框架的实现

    java中struts 框架的实现

    本文给大家介绍的是java中struts 框架的实现,有需要的小伙伴可以参考下。 ...

    hebedich2912019-12-20
  • Java教程如何给HttpServletRequest增加消息头

    如何给HttpServletRequest增加消息头

    这篇文章主要介绍了如何给HttpServletRequest增加消息头的实现方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...

    meihuiziaaaaaa3752021-09-19
  • Java教程Java swing实现支持录音等功能的钢琴程序

    Java swing实现支持录音等功能的钢琴程序

    这篇文章主要为大家详细介绍了Java swing实现钢琴程序,支持录音等功能的Java钢琴源码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    明礼馨德4182020-11-10