文件搜索(File)
一、File类
1.java.io.File
类是文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找和删除等操作
2.构造方法:
public File(String pathname)
:通过文件路径名创建 File实例public File(String parent, String child)
:通过父路径名字符串和子路径名字符串创建 File实例public File(File parent, String child)
:通过父级File对象和子路径名字符串创建File实例
//文件路径名String pathname = "E:\\aaa\\aa";File file = new File(pathname);//通过父路径和子路径字符串String parent = "E:\\aaa\\aa";String child = "b.txt";File file2 = new File(parent,child);//通过父级File对象和子路径字符串File parentDir = new File("E:\\aaa\\aa");String child2 = "b.txt";File file3 = new File(parentDir,child2);
3.常用方法:
(1)获取功能的方法:
public String getAbsolutePath()
:返回此File的绝对路径名字符串public String getPath()
:将此File转换为路径名字符串。public String getName()
:返回由此File表示的文件或目录的名称public long length()
:返回由此File表示的文件的长度
File f = new File("\\aaa\\aa\\b.txt");System.out.println("文件绝对路径:" + f.getAbsolutePath()); //文件绝对路径:D:\aaa\aa\b.txtSystem.out.println("文件构造路径:" + f.getPath()); //文件构造路径:\aaa\aa\b.txtSystem.out.println("文件名称:" + f.getName()); //文件名称:b.txtSystem.out.println("文件长度:" + f.length() + "字节"); //文件长度:0字节
(2)绝对路径和相对路径
- 绝对路径:从盘符开始的路径,这是一个完整的路径
- 相对路径:相对于项目目录的路径,这是一个便捷的路径,开发中经常使用
//E:\aaa\aa下的b.txt文件File f = new File("E:\\aaa\\aa\\b.txt");System.out.println(f.getAbsolutePath()); //E:\aaa\aa\b.txt//项目下的b.txtFile f2 = new File("b.txt");System.out.println(f2.getAbsolutePath()); //D:\IdeaProjects\feisi\b.txt
(3)判断功能的方法:
public boolean exists()
:此File表示的文件或目录是否实际存在public boolean isDirectory()
:此File表示的是否为目录public boolean isFile()
:此File表示的是否为文件
File f = new File("E:\\aaa\\aa\\b.txt");File f2 = new File("E:\\aaa\\aa");//判断是否存在System.out.println(f.exists()); //trueSystem.out.println(f2.exists()); //true//判断是文件还是目录System.out.println(f.isFile()); //trueSystem.out.println(f.isDirectory()); //false
(4)创建删除功能的方法
public boolean createNewFile()
:当且仅当具有该名称的文件尚不存在时,创建一个新的空文件public boolean delete()
:删除由此File表示的文件或目录public boolean mkdir()
:创建由此File表示的目录public boolean mkdirs()
:创建由此File表示的目录,包括任何必需但不存在的父目录
//文件的创建File f = new File("a.txt");System.out.println(f.createNewFile()); //true//目录的创建File f2 = new File("Dir");System.out.println(f2.mkdir()); //true//创建多级目录File f3 = new File("Dir\\dir");System.out.println(f3.mkdirs()); //true//文件的删除(如果此File目录,则目录必须为空才能删除,文件则直接删除)System.out.println(f.delete()); //true
(5)目录的遍历
public String[] list()
:返回一个String数组,表示该File目录中的所有子文件或目录public File[] listFiles()
:返回一个File数组,表示该File目录中的所有的子文件或目录
File dir = new File("E:\\aaa");//获取当前目录下的文件以及文件夹的名称String[] names = dir.list();for (String name : names) {System.out.println(name); //a.txt aa}//获取当前目录下的文件以及文件夹对象File[] files = dir.listFiles();for (File file : files) {System.out.println(file); //E:\aaa\a.txt E:\aaa\aa}
4.递归打印多级目录
遍历之前,我们不知道有多少级目录,所以我们要使用递归实现
public static void main(String[] args) {File dir = new File("E:\\aaa");printDir(dir);
// 打印结果
// E:\aaa\a.txt
// E:\aaa\aa
// E:\aaa\aa\b.txt}public static void printDir(File dir) {File[] files = dir.listFiles();for (File file : files) {if(file.isFile()){System.out.println(file.getAbsolutePath());} else {System.out.println(file.getAbsolutePath());printDir(file);}}}
二、典型案例
搜索D:\aaa
目录中的.java
文件
分析:
- 目录搜索,无法判断多少级目录,所以使用递归,遍历所有目录。
- 遍历目录时,获取的子文件,通过文件名称,判断是否符合条件。
代码实现:
public static void main(String[] args) {// 创建File对象File dir = new File("D:\\aaa");// 调用打印目录方法printDir(dir);}public static void printDir(File dir) {// 获取子文件和目录File[] files = dir.listFiles();// 循环打印for (File file : files) {if (file.isFile()) {// 是文件,判断文件名并输出文件绝对路径if (file.getName().endsWith(".java")) {System.out.println("文件名:" + file.getAbsolutePath());}} else {// 是目录,继续遍历,形成递归printDir(file);}}}
文件搜索(File)相关推荐
- ls mac 显示最近修改日期_Find Any File for Mac(Mac本地文件搜索工具)
今天小编给大家带来的Find Any File mac是Mac平台上的一款本地文件搜索查找工具,可以让你在本地磁盘上快速搜索.查找你需要的文件.甚至是隐藏文件都逃不出Find Any File mac ...
- Find Any File for Mac,本地文件搜索工具
Find Any File for Mac是一款简单好用的本地文件搜索工具,可以让你在本地磁盘上搜索.查找任何文件,包括本地磁盘的名称. 创建或修改日期. 大小或类型和创建者代码等. 更好的结果:它为 ...
- 在linux下面使用Jsoncpp,在编译时添加了头文件搜索路径-Ixxxx/json ,导致很多错误,如下: In file included from /usr/include/x86_64-li
在linux下面使用Jsoncpp,在编译时添加了头文件搜索路径-Ixxxx/json ,导致很多错误,如下: In file included from /usr/include/x86_64-li ...
- Atitit.文件搜索工具 attilax 总结
Atitit.文件搜索工具 attilax 总结 1. 指定目录按照体积大小精确搜索1 1.1. File Seeker 4.5 版本的可以,3.5版本的不行..1 2. 按照文件内容搜索1 2.1. ...
- gi克隆github文件_如何构建GitHub文件搜索功能的克隆
gi克隆github文件 In this article, we will build a project that mimics the lesser known but awesome file ...
- Linux下gcc编译中关于头文件与库文件搜索路径相关问题
如何指定GCC的默认头文件路径 网上偶搜得之,以之为宝:) 原地址:http://blog.chinaunix.net/u/28781/showart.php?id=401631 ========== ...
- 白话Elasticsearch56-数据建模之 Path Hierarchy Tokenizer 对文件系统进行数据建模以及文件搜索
文章目录 概述 官网 示例 模拟:文件系统数据构造 测试path_hierarchy分词 需求一: 查找一份,内容包括ES,在/workspace/workspace/projects/hellowo ...
- more 目录linux,linux(二)目录结构、文件基本操作cat\more\less、环境变量、文件搜索...
linux 目录结构及文件基本操作 linux文件结构: FHS(英文:Filesystem Hierarchy Standard 中文:文件系统层次结构标准),多数 Linux 版本采用这种文件组织 ...
- gorm preload 搜索_macOS系统本地文件搜索工具
Find Any File Mac可以准确快速地查找本次磁盘甚至是本地隐藏磁盘上的任何文件,Find Any File Mac不使用数据库,而是使用文件系统驱动程序的快速搜索操作,包括能够搜索到通常隐 ...
- 用数组实现从文件搜索帐户和验证密码
最近一个同学在写个银行管理程序(C语言小项目),然后问我怎么从文件搜索帐户,给了方法后又不懂文件里面的密码怎么与输入的匹配.一般来说,高效的做法是用链表实现.用数组实现不是高效的方法,而且浪费空间.再 ...
最新文章
- 【Codeforces 922D】Robot Vacuum Cleaner
- 澎湖县地产泡沫的破灭
- 泛微e9隐藏明细表_泛微E8 隐藏行、明细表
- 手工成本维护不可以将成本改为零
- 图文详解远程部署ASP.NET MVC 5项目
- CSP2019洛谷P5665:划分(单调队列,高精度)
- 阿里云rocketmq_云原生时代消息中间件的演进路线
- 漫话:如何给女朋友解释为什么一到年底,部分网站就会出现日期混乱的现象?...
- mySql版本的相关问题:com.mysql.cj.jdbc.Driver和com.mysql.jdbc.Driver
- C++新特性探究(6.1):auto和decltype的类型推断差异所在
- 八类网线和七类网线的区别_七类网线和六类网线区别有哪些
- 视频异常事件检测Object-centric Auto-encoders and Dummy Anomalies for Abnormal Event Detection in Video
- jQuery实现 弹出层效果
- ABAP:BTE的查找及使用
- android发送微信请求失败,安卓微信浏览器POST请求发不出去。
- 30个精美的简单网站
- k8s(十一)、分布式存储Cephfs使用
- git 拉取所有远程分支
- 前端面试题之nina分享
- 关于支付宝小程序使用wxbarcode需要生成条形码的源码修改