java后台获取文件保存的绝对路径(JAVA中的文件操作3-如何查找文件)
java后台获取文件保存的绝对路径(JAVA中的文件操作3-如何查找文件)
2024-06-09 01:37:28  作者:美人如云  网址:https://m.xinb2b.cn/life/rbi343080.html

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

java后台获取文件保存的绝对路径(JAVA中的文件操作3-如何查找文件)

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-06-09孙耀威都演过哪些深入人心的角色 演技怎样孙耀威的演并不是当普通的花瓶,而是有实力的演,《怀玉公主》中的康熙帝、《乌龙闯情关》中的刘病已、2003年《雪花神龙女》中还一人分饰两角皇甫仁和臭豆腐、在《仙剑奇缘》中饰演古汉阳,甚至在都市爱情剧《天。
  • 悬挑梁按框架梁还是非框架梁(悬挑梁属于框架梁吗)
  • 2024-06-09悬挑梁属于框架梁吗现如今,建筑形式和建筑方式有很多,因此,建筑梁的种类也不少,主要有楼层框架梁,屋面有框支梁、悬挑梁、井字梁、框架梁和非框架梁等类型而这些梁的跨数具有一定的差别,有不少内行人都会将它们混淆,尤其是框架梁。
  • 张家界3-4天游玩攻略(元旦假期去哪儿玩)
  • 2024-06-09元旦假期去哪儿玩文章来源:兔管家旅行网(ID:Tgjtripcom)众所周知,张家界是一座拥有无数自然美景的旅游城市,春来百花开,夏游暑气消,秋来红叶飘,冬至雪花飞,一年四季来这里游玩皆能欣赏到独特的风景,看完是不是。
  • 九寨沟地震伤亡人员名单(九寨沟地震14名遇难者身份确定)
  • 2024-06-09九寨沟地震14名遇难者身份确定▌本文来源:央视新闻、洛阳日报、九寨沟政府网昨天下午5点,四川抗震救灾指挥部举行了第二次新闻发布会,通报四川九寨沟7.0级地震抗震救灾最新情况截至昨晚十点,地震导致20人遇难,493人受伤目前,震区已。
  • 装修木板有甲醛(原来家具用这种木板甲醛含量最少)
  • 2024-06-09原来家具用这种木板甲醛含量最少在装修中,很多人都会用到木板?那么木板有哪些种类呢?买哪种木板的甲醛含量少呢?就这个问题,飞墨君详细和大家介绍一下下面飞墨君带大家来看看甲醛含量排名前四的木板:第一名:密度板贴面后的密度板又被称之为三。
  • 女人面相中好的颧骨(颧骨高的女人面相会克夫吗)
  • 2024-06-09颧骨高的女人面相会克夫吗俗话说:女人颧骨高,杀夫不用刀相书上说:女人颧骨高,主刑夫克子那么这种说法是不是有道理呢?颧者,权也在相法之中,颧骨代表着人的权力欲,控制欲,占有欲,领导力一般来说,颧骨高的人相对于颧骨低的人,其权力。
  • 司马光砸缸中救出的小孩儿是谁(司马光砸缸的故事中)
  • 2024-06-09司马光砸缸的故事中天地不仁,以万物为刍狗,虽然每个人都会死,但有的人却能够名垂青史而有些人的出生和死亡,就像路边的花开花落一样,没人会在意,更不会在历史上留下一丁点儿痕迹司马光砸缸的故事,之所以能够广为人知,就是因为这。
  • 什么是兔子小姐(为何会有女生自称)
  • 2024-06-09为何会有女生自称“爱美之心,人皆有之”,由于当下社会以骨感为美以及影视剧中营造出的身材焦虑氛围,导致一些女生为了追求苗条的身材而采用的各种各样极端减肥方式,这其中就有女生釆用一种减肥方式并自称“兔子”骨感美女“兔子”。
  • 奔驰v260中排座椅一键拓宽流程(年轻人的第一把座椅)
  • 2024-06-09年轻人的第一把座椅本内容来源于@什么值得买APP,观点仅代表作者本人|作者:老张老张从来不慌创作立场声明:本文座椅为自费购入!坚持独立的评价观点是创作的基本底线,绝不会因商品的品牌而有所偏颇,请各位放心!前言搬新家书桌。
  • 适合35岁平价又好用的眼霜(对于20岁的女孩子来说)
  • 2024-06-09对于20岁的女孩子来说在正式开始前要说一句,“平价”并不意味着白菜价,护肤品原材料也要成本,护肤品公司要赚钱,所以根本不可能便宜买到有效果的护肤品,现实点,好嘛这里的平价,起码也要是个水果价:-D昨天有发文讲过,20岁左右。