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);
    }
}
相关文章
|
3月前
|
Java
java小工具util系列5:java文件相关操作工具,包括读取服务器路径下文件,删除文件及子文件,删除文件夹等方法
java小工具util系列5:java文件相关操作工具,包括读取服务器路径下文件,删除文件及子文件,删除文件夹等方法
112 9
|
3月前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
130 2
|
11天前
|
存储 算法 Java
解锁“分享文件”高效密码:探秘 Java 二叉搜索树算法
在信息爆炸的时代,文件分享至关重要。二叉搜索树(BST)以其高效的查找性能,为文件分享优化提供了新路径。本文聚焦Java环境下BST的应用,介绍其基础结构、实现示例及进阶优化。BST通过有序节点快速定位文件,结合自平衡树、多线程和权限管理,大幅提升文件分享效率与安全性。代码示例展示了文件插入与查找的基本操作,适用于大规模并发场景,确保分享过程流畅高效。掌握BST算法,助力文件分享创新发展。
|
4月前
|
Java
Java“解析时到达文件末尾”解决
在Java编程中,“解析时到达文件末尾”通常指在读取或处理文件时提前遇到了文件结尾,导致程序无法继续读取所需数据。解决方法包括:确保文件路径正确,检查文件是否完整,使用正确的文件读取模式(如文本或二进制),以及确保读取位置正确。合理设置缓冲区大小和循环条件也能避免此类问题。
602 2
|
2月前
|
人工智能 自然语言处理 Java
FastExcel:开源的 JAVA 解析 Excel 工具,集成 AI 通过自然语言处理 Excel 文件,完全兼容 EasyExcel
FastExcel 是一款基于 Java 的高性能 Excel 处理工具,专注于优化大规模数据处理,提供简洁易用的 API 和流式操作能力,支持从 EasyExcel 无缝迁移。
218 9
FastExcel:开源的 JAVA 解析 Excel 工具,集成 AI 通过自然语言处理 Excel 文件,完全兼容 EasyExcel
|
2月前
|
Java
java实现从HDFS上下载文件及文件夹的功能,以流形式输出,便于用户自定义保存任何路径下
java实现从HDFS上下载文件及文件夹的功能,以流形式输出,便于用户自定义保存任何路径下
117 34
|
28天前
|
前端开发 Java 开发工具
Git使用教程-将idea本地Java等文件配置到gitte上【保姆级教程】
本内容详细介绍了使用Git进行版本控制的全过程,涵盖从本地仓库创建到远程仓库配置,以及最终推送代码至远程仓库的步骤。
37 0
|
3月前
|
消息中间件 存储 Java
RocketMQ文件刷盘机制深度解析与Java模拟实现
【11月更文挑战第22天】在现代分布式系统中,消息队列(Message Queue, MQ)作为一种重要的中间件,扮演着连接不同服务、实现异步通信和消息解耦的关键角色。Apache RocketMQ作为一款高性能的分布式消息中间件,广泛应用于实时数据流处理、日志流处理等场景。为了保证消息的可靠性,RocketMQ引入了一种称为“刷盘”的机制,将消息从内存写入到磁盘中,确保消息持久化。本文将从底层原理、业务场景、概念、功能点等方面深入解析RocketMQ的文件刷盘机制,并使用Java模拟实现类似的功能。
72 3
|
3月前
|
Java 测试技术 Maven
Maven clean 提示文件 java.io.IOException
在使用Maven进行项目打包时,遇到了`Failed to delete`错误,尝试手动删除目标文件也失败,提示`java.io.IOException`。经过分析,发现问题是由于`sys-info.log`文件被其他进程占用。解决方法是关闭IDEA和相关Java进程,清理隐藏的Java进程后重新尝试Maven clean操作。最终问题得以解决。总结:遇到此类问题时,可以通过任务管理器清理相关进程或重启电脑来解决。
|
3月前
|
存储 缓存 安全
在 Java 编程中,创建临时文件用于存储临时数据或进行临时操作非常常见
在 Java 编程中,创建临时文件用于存储临时数据或进行临时操作非常常见。本文介绍了使用 `File.createTempFile` 方法和自定义创建临时文件的两种方式,详细探讨了它们的使用场景和注意事项,包括数据缓存、文件上传下载和日志记录等。强调了清理临时文件、确保文件名唯一性和合理设置文件权限的重要性。
290 2

热门文章

最新文章