Java中文件管理和文件过滤

简介: 笔记

1.文件管理

Java语言使用File类对文件和目录进行操作,查找文件时需要实现FilenameFilter或FileFilter接口。另 外,读写文件内容可以通过FileInputStream、FileOutputStream、FileReader和FileWriter类实现,它们属 于I/O流,下一节会详细介绍I/O流。这些类和接口全部来源于java.io包。


File类

File类表示一个与平台无关的文件或目录。File类名很有欺骗性,初学者会误认为是File对象只是一个

文件,但它也可能是一个目录。 File类中常用的方法如下。


构造方法

File(String path):如果path是实际存在的路径,则该File对象表示的是目录;如果path是文

件名,则该File对象表示的是文件。

File(String path, String name):path是路径名,name是文件名。 File(File dir, String name):dir是路径对象,name是文件名。


获得文件名

String getName( ):获得文件的名称,不包括路径。 String getPath( ):获得文件的路径。

String getAbsolutePath( ):获得文件的绝对路径。 String getParent( ):获得文件的上一级目录名。


文件属性测试

boolean exists( ):测试当前File对象所表示的文件是否存在。 boolean canWrite( ):测试当前文件是否可写。

boolean canRead( ):测试当前文件是否可读。

boolean isFile( ):测试当前文件是否是文件。

boolean isDirectory( ):测试当前文件是否是目录。


文件操作

long lastModified( ):获得文件最近一次修改的时间。

long length( ):获得文件的长度,以字节为单位。

boolean delete( ):删除当前文件。成功返回 true,否则返回false。

boolean renameTo(File dest):将重新命名当前File对象所表示的文件。成功返回 true,否 则返回false。


目录操作

boolean mkdir( ):创建当前File对象指定的目录。

String[] list():返回当前目录下的文件和目录,返回值是字符串数组。

String[] list(FilenameFilter filter):返回当前目录下满足指定过滤器的文件和目录,参数是 实现FilenameFilter接口对象,返回值是字符串数组。

File[] listFiles():返回当前目录下的文件和目录,返回值是File数组。

File[] listFiles(FilenameFilter filter):返回当前目录下满足指定过滤器的文件和目录,参数

是实现FilenameFilter接口对象,返回值是File数组。

File[] listFiles(FileFilter filter):返回当前目录下满足指定过滤器的文件和目录,参数是实

现FileFilter接口对象,返回值是File数组。 对目录操作有两个过滤器接口:FilenameFilter和FileFilter。它们都只有一个抽象方法accept,


FilenameFilter接口中的accept方法如下:

boolean accept(File dir, String name):测试指定dir目录中是否包含文件名为name的文件。

FileFilter接口中的accept方法如下:

boolean accept(File pathname):测试指定路径名是否应该包含在某个路径名列表中。


文件过滤

代码如下:

package 文件管理.文件过滤;
import java.io.File;
import java.io.FilenameFilter;
public class HelloWorld {
    public static void main(String[] args) {
//        用File对象表示一个目录,后面的为路径
        File dir = new File("/Users/caizhengjie/Desktop/qq/e");
//        创建html文件过滤器
        Filter filter = new Filter("html");
        System.out.println("HTML文件目录"+dir);
//        列出目录qq下文件名为html的所有文件
        String files[] = dir.list(filter);
//        遍历文件列表
        for (String filename:files){
            // 为目录qq下的文件或目录创建File对象
            File f = new File(dir,filename);
//            如果f对象是文件,则打印文件名
            if(f.isFile()){
                System.out.println("文件名"+f.getName());
                System.out.println("文件的绝对路径"+f.getAbsolutePath());
                System.out.println("文件路径:" + f.getPath());
            }
            else {
                System.out.println("子目录"+f);
            }
        }
    }
}
//自定义基于文件扩展名的文件过滤器
class Filter implements FilenameFilter{
//    文件扩展名
    String extent;
//    构造方法
    Filter(String extent){
        this.extent = extent;
    }
    @Override
    public boolean accept(File dir, String name) {
//        测试文件扩展名是否为extent所指定的
        return name.endsWith("."+extent);
    }
}
相关文章
|
24天前
|
存储 缓存 安全
Java 中 IO 流、File文件
Java 中 IO 流、File文件
|
2月前
|
前端开发 Java
Java压缩20M文件非常厉害
Java压缩20M文件非常厉害
27 1
|
2月前
|
Java BI API
Java如何实现文件批量导入导出(兼容xls,xlsx)
Java如何实现文件批量导入导出(兼容xls,xlsx)
39 0
|
2月前
|
Java
有关Java发送邮件信息(支持附件、html文件模板发送)
有关Java发送邮件信息(支持附件、html文件模板发送)
35 1
|
2月前
|
Java
java中替换文件内容
java中替换文件内容
15 1
|
7天前
|
Java Unix Windows
|
11天前
|
Java 关系型数据库 MySQL
Elasticsearch【问题记录 01】启动服务&停止服务的2类方法【及 java.nio.file.AccessDeniedException: xx/pid 问题解决】(含shell脚本文件)
【4月更文挑战第12天】Elasticsearch【问题记录 01】启动服务&停止服务的2类方法【及 java.nio.file.AccessDeniedException: xx/pid 问题解决】(含shell脚本文件)
46 3
|
2天前
|
分布式计算 DataWorks Java
DataWorks操作报错合集之在使用MaxCompute的Java SDK创建函数时,出现找不到文件资源的情况,是BUG吗
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
15 0
|
3天前
|
存储 Java Linux
【Java EE】 文件IO的使用以及流操作
【Java EE】 文件IO的使用以及流操作
|
4天前
|
存储 缓存 安全
【专栏】如何在 Java 中创建临时文件?
【4月更文挑战第28天】本文介绍了Java中创建临时文件的两种方法:使用`File.createTempFile`和自定义创建。`File.createTempFile`能生成唯一文件名,但默认不自动删除;自定义创建则提供更大灵活性,但需手动管理。临时文件常用于数据缓存、文件上传下载和日志记录,使用时需注意文件清理、唯一性和权限设置。