java后台获取文件保存的绝对路径(JAVA中的文件操作3-如何查找文件)
java后台获取文件保存的绝对路径(JAVA中的文件操作3-如何查找文件)
2024-11-22 11:29:45  作者:美人如云  网址:https://m.xinb2b.cn/know/rbi343080.html

在前面的JAVA中的文件操作1-如何获取文件信息,创建文件和JAVA中的文件操作2-如何读写文件中,我们介绍了文件的基本操作那么,我们有时候还可能会遇到从文件夹中搜索某个文件的情况,这时候就需要对文件进行查找了,下面我们就来聊聊关于java后台获取文件保存的绝对路径?接下来我们就一起去了解一下吧!


java后台获取文件保存的绝对路径

java中的文件操作3-如何查找文件

在前面的JAVA中的文件操作1-如何获取文件信息,创建文件和JAVA中的文件操作2-如何读写文件中,我们介绍了文件的基本操作。那么,我们有时候还可能会遇到从文件夹中搜索某个文件的情况,这时候就需要对文件进行查找了。

通过java提供的Files.walk和PathMatcher可以来完成这一任务。Files.walk可以遍历目录树,PathMatcher可以完成目标文件的匹配,两者结合即可找到我们需要的文件。如果还对文件有其他要求,比如最近更新时间,还可以通过Files.find来自定义过滤器来完成,不过一般都不需要。

PathMatcher支持两种查找模式:glob和regex,用法是FileSystems.getDefault().getPathMatcher(matcher),matcher的语法是: 模式:匹配串,比如:

FileSystems.getDefault().getPathMatcher("glob:*.txt");

glob模式匹配

glob模式起源于 Unix 的 bash shell,在shell中非常常用,在这里的用法也是一致的。

比如下面的示例,查找所有md文件:

Path rootPath = Paths.get("D:\\project");PathMatcher markdownFileMatcher = FileSystems.getDefault().getPathMatcher("glob:***.txt 匹配这个目录中的任何.txt结尾的文件,包括子目录中的

?

匹配任意单个字符

hell?.txt 可以匹配 hello.txt

[abc]

匹配括号中给出字符,可以是一堆字母或者是范围

[abc] 表示a,b,c中任意字符,也可以通过[a-c]表示

[!abc]

匹配范围与上面相反

[!abc] 表示非a,b,c的任意字符

最常用的就是**和*了,请务必注意其中区别。

regex模式

regex模式即正则表达式模式,可以书写正则表达式来匹配文件,同样是查找md文件:

Path rootPath = Paths.get("D:\\project");PathMatcher markdownFileMatcher = FileSystems.getDefault().getPathMatcher("regex:.*\\.md");try (Stream<Path> fileAndDirs = Files.walk(rootPath)) { fileAndDirs .filter(markdownFileMatcher::matches) .limit(10) .forEach(System.out::println);}

Files.find查找文件

Files.find提供了自定义过滤器的方法,下面查找了最近修改时间在10天以内的文件:

Instant tenDaysBefore = Instant.now().minus(10, ChronoUnit.DAYS);BiPredicate<Path, BasicFileAttributes> matcher = (path, attrs) -> Files.isRegularFile(path) && attrs.lastModifiedTime().toInstant().isAfter(tenDaysBefore);try (Stream<Path> files = Files.find(rootPath, Integer.MAX_VALUE, matcher)) { files .limit(10) .forEach(System.out::println);}

matcher可以获取到Path示例来匹配路径或者文件内容,还可以获取到BasicFileAttributes得到文件的修改时间等信息,可以根据更新时间等信息来匹配文件。

  • 江夏庙山烂尾楼(江夏庙山又将新添一楼盘)
  • 2024-11-22江夏庙山又将新添一楼盘庙山新鲜事近日曾推文《紧靠江夏大道!庙山这块空地动工了?到底是什么项目?》,引发网友热议这个新楼盘项目名为什么?庙山新鲜事从网友爆料和查询相关信息了解到,该项目名称为上坤·林语半岛近年来,庙山楼市发展。
  • 强国复兴有我主题征文800字 强国复兴有我主题征文
  • 2024-11-22强国复兴有我主题征文800字 强国复兴有我主题征文单位:龙江森工集团柴河林业局有限公司姓名:李晓丹职务:职工“强国复兴有我”这句话,不紧是每一位森工人心中的信念,而且也是森工人开拓进取,勇往直前用实际行动报效祖国的决心作为一个森工人,我们深知我们肩负。
  • ps5载入游戏存档(PS5游戏启动和读取存档演示公布)
  • 2024-11-22PS5游戏启动和读取存档演示公布近日,外媒Reddit上流传了一段PS5启动游戏和进行存档的演示影像,用来展示的作品是《漫威蜘蛛侠:迈尔斯莫拉里斯》,从主界面启动游戏大约花了7-8秒,从游戏主菜单读取游戏存档大约用了2秒的时间,速度。
  • 未来人类的交通工具有哪些(4种看起来十分科幻的交通工具)
  • 2024-11-224种看起来十分科幻的交通工具最近几年,人类科技的发展可以用指数增长来形容,仅仅是交通工具方面就做出了很大的创新本期节目给大家介绍4种非常科幻的交通工具,有的已经成为现实,你看好哪一种呢?没有方向盘的自动驾驶汽车无人驾驶技术正在慢。
  • 12306退票有什么要求(12306买票退票有新变化)
  • 2024-11-2212306买票退票有新变化近期买火车票的小伙伴请注意为适应疫情防控条件下旅客出行规律铁路部门改进了↓↓售票和退改签服务措施↓↓铁路部门将根据疫情防控要求和客流变化适时调配运力不断改进服务举措努力提升广大旅客出行体验请广大旅客及。
  • 美容护肤五步骤(美容护肤五大步骤介绍)
  • 2024-11-22美容护肤五大步骤介绍洁面在清洁面部之前,我们需要洗手清洁面部时,应按照毛孔生长的方向按摩双手洁净后,用自来水清洗如果我们洗脸错了,可能会毁容!这不是危言耸听因为清洁是所有皮肤护理步骤最重要结果打圈按摩我们将彻底净化手部清。
  • 索泰geforce rtx 3060显卡怎么样(以光之名登顶8K游戏创作)
  • 2024-11-22以光之名登顶8K游戏创作在耕升的众多显卡系列中,备受“颜值党”青睐的要数炫光系列大规模的RGB灯效格外吸睛,即使在整个游戏显卡领域都推崇“光污染”的当下,如果要论RGB灯效所呈现的视觉冲击力,耕升炫光系列无疑榜上有名伴随着R。
  • 苹果wwdc2023发布会(苹果WWDC覆车机大小马聊科技23)
  • 2024-11-22苹果WWDC覆车机大小马聊科技23本期视频传送门:「大小马聊科技23(上)」话题1、苹果WWDC颠覆车机?话题2、集度发布会有啥亮点?话题3、比亚迪市值破万亿?大小马聊科技,用毒辣视角,聊科技热点每周聊三个科技热点,我是小丹尼,我是大。
  • 煤炭公司的成本怎么算(公司煤炭产品定价原则有五种形式)
  • 2024-11-22公司煤炭产品定价原则有五种形式【能源人都在看,点击右上角加'关注'】露天煤业10月15日在投资平台表示,公司2021年度长协合同煤炭价格严格按照环渤海及锦州港价格联动执行,随着联动上涨或下调,截止目前公司长协煤炭售价随着定价联动机。
  • 孙子兵法全文及译文记忆(孙子兵法全文逐字拼音版)
  • 2024-11-22孙子兵法全文逐字拼音版★《孙子兵法》又称《孙武兵法》、《吴孙子兵法》、《孙子兵书》、《孙武兵书》等,英文名为《TheArtofWar》,是中国古典军事文化遗产中的璀璨瑰宝,是中国优秀文化传统的重要组成部分,是世界三大兵书之。