一、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 文件
分析

  1. 目录搜索,无法判断多少级目录,所以使用递归,遍历所有目录。
  2. 遍历目录时,获取的子文件,通过文件名称,判断是否符合条件。

代码实现

 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)相关推荐

  1. ls mac 显示最近修改日期_Find Any File for Mac(Mac本地文件搜索工具)

    今天小编给大家带来的Find Any File mac是Mac平台上的一款本地文件搜索查找工具,可以让你在本地磁盘上快速搜索.查找你需要的文件.甚至是隐藏文件都逃不出Find Any File mac ...

  2. Find Any File for Mac,本地文件搜索工具

    Find Any File for Mac是一款简单好用的本地文件搜索工具,可以让你在本地磁盘上搜索.查找任何文件,包括本地磁盘的名称. 创建或修改日期. 大小或类型和创建者代码等. 更好的结果:它为 ...

  3. 在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 ...

  4. Atitit.文件搜索工具 attilax 总结

    Atitit.文件搜索工具 attilax 总结 1. 指定目录按照体积大小精确搜索1 1.1. File Seeker 4.5 版本的可以,3.5版本的不行..1 2. 按照文件内容搜索1 2.1. ...

  5. gi克隆github文件_如何构建GitHub文件搜索功能的克隆

    gi克隆github文件 In this article, we will build a project that mimics the lesser known but awesome file ...

  6. Linux下gcc编译中关于头文件与库文件搜索路径相关问题

    如何指定GCC的默认头文件路径 网上偶搜得之,以之为宝:) 原地址:http://blog.chinaunix.net/u/28781/showart.php?id=401631 ========== ...

  7. 白话Elasticsearch56-数据建模之 Path Hierarchy Tokenizer 对文件系统进行数据建模以及文件搜索

    文章目录 概述 官网 示例 模拟:文件系统数据构造 测试path_hierarchy分词 需求一: 查找一份,内容包括ES,在/workspace/workspace/projects/hellowo ...

  8. more 目录linux,linux(二)目录结构、文件基本操作cat\more\less、环境变量、文件搜索...

    linux 目录结构及文件基本操作 linux文件结构: FHS(英文:Filesystem Hierarchy Standard 中文:文件系统层次结构标准),多数 Linux 版本采用这种文件组织 ...

  9. gorm preload 搜索_macOS系统本地文件搜索工具

    Find Any File Mac可以准确快速地查找本次磁盘甚至是本地隐藏磁盘上的任何文件,Find Any File Mac不使用数据库,而是使用文件系统驱动程序的快速搜索操作,包括能够搜索到通常隐 ...

  10. 用数组实现从文件搜索帐户和验证密码

    最近一个同学在写个银行管理程序(C语言小项目),然后问我怎么从文件搜索帐户,给了方法后又不懂文件里面的密码怎么与输入的匹配.一般来说,高效的做法是用链表实现.用数组实现不是高效的方法,而且浪费空间.再 ...

最新文章

  1. 【Codeforces 922D】Robot Vacuum Cleaner
  2. 澎湖县地产泡沫的破灭
  3. 泛微e9隐藏明细表_泛微E8 隐藏行、明细表
  4. 手工成本维护不可以将成本改为零
  5. 图文详解远程部署ASP.NET MVC 5项目
  6. CSP2019洛谷P5665:划分(单调队列,高精度)
  7. 阿里云rocketmq_云原生时代消息中间件的演进路线
  8. 漫话:如何给女朋友解释为什么一到年底,部分网站就会出现日期混乱的现象?...
  9. mySql版本的相关问题:com.mysql.cj.jdbc.Driver和com.mysql.jdbc.Driver
  10. C++新特性探究(6.1):auto和decltype的类型推断差异所在
  11. 八类网线和七类网线的区别_七类网线和六类网线区别有哪些
  12. 视频异常事件检测Object-centric Auto-encoders and Dummy Anomalies for Abnormal Event Detection in Video
  13. jQuery实现 弹出层效果
  14. ABAP:BTE的查找及使用
  15. android发送微信请求失败,安卓微信浏览器POST请求发不出去。
  16. 30个精美的简单网站
  17. k8s(十一)、分布式存储Cephfs使用
  18. git 拉取所有远程分支
  19. 前端面试题之nina分享
  20. 关于支付宝小程序使用wxbarcode需要生成条形码的源码修改

热门文章

  1. 手撕HashMap数据结构(带你逐行阅读源码)
  2. js 根据链接生成二维码
  3. 仿京东或淘宝的订单中心页面
  4. ubuntu下载安装google浏览器
  5. 计算机 打印 速度慢,处理打印机在打印文件时打印速度过慢的原因
  6. 【ACWing】2715. 后缀数组
  7. vb 计算机主板喇叭发声,主板蜂鸣器发声规律总结
  8. Java Web之过滤器的简单创建
  9. 部分大数据平台运维题及答案
  10. 计算机输入输出接口形式,输入输出接口-微计算机原理-电子发烧友网站