首页 > 其他分享 >动手动脑

动手动脑

时间:2023-10-31 21:55:30浏览次数:31  
标签:java nio glob 动脑 动手 IOException file import

1.使用Files. walkFileTree()找出指定文件夹下所有大于指定大小(比如1M)的文件。

复制代码
 1 package com.test;
 2 import java.io.IOException;
 3 import java.nio.file.FileSystems;
 4 import java.nio.file.FileVisitOption;
 5 import java.nio.file.FileVisitResult;
 6 import java.nio.file.FileVisitor;
 7 import java.nio.file.Files;
 8 import java.nio.file.Path;
 9 import java.nio.file.Paths;
10 import java.nio.file.attribute.BasicFileAttributes;
11 import java.util.EnumSet;
12 
13 
14 public class File implements FileVisitor<Object> {
15  private final long accepted_size;
16  public  File(String glob,long accepted_size) {
17       FileSystems.getDefault().getPathMatcher("glob:" +glob);
18       this.accepted_size=accepted_size; 
19     }
20    void search(Path file) throws IOException {
21     long size = (Long) Files.getAttribute(file, "basic:size");
22     if(size <=accepted_size) {
23      System.out.println(file);
24     }
25    }
26    @Override
27    public FileVisitResult postVisitDirectory(Object dir, IOException exc)throws IOException {
28     return FileVisitResult.CONTINUE;
29    }
30    @Override
31    public FileVisitResult preVisitDirectory(Object dir, BasicFileAttributes attrs)throws IOException {
32     return FileVisitResult.CONTINUE;
33    }
34    @Override
35    public FileVisitResult visitFile(Object file, BasicFileAttributes attrs)throws IOException {
36   search((Path) file);
37      return  FileVisitResult.CONTINUE;
38   }
39    @Override
40    public FileVisitResult visitFileFailed(Object file, IOException exc)throws IOException {
41   return FileVisitResult.CONTINUE;
42    }
43    
44    
45    public static void main(String[] args) throws IOException{
46     String glob=  "*.jpg";  
47     long size = 1024;
48     Path fileTree = Paths.get("D:/");
49     File walk=new File(glob, size);
50     EnumSet<FileVisitOption> opts=EnumSet.of(FileVisitOption.FOLLOW_LINKS);
51     System.out.println("D盘中大于等于1KB的文件有");
52     Files.walkFileTree(fileTree, opts, Integer.MAX_VALUE, walk);
53    }
54 }
复制代码

 

 

 


 

2.使用Files. walkFileTree()找出指定文件夹下所有扩展名为.txt和.java的文件。

复制代码
 1 package com.test;
 2 import java.io.IOException;
 3 import java.nio.file.FileSystems;
 4 import java.nio.file.FileVisitResult;
 5 import java.nio.file.Files;
 6 import java.nio.file.Path;
 7 import java.nio.file.PathMatcher;
 8 import java.nio.file.Paths;
 9 import java.nio.file.SimpleFileVisitor;
10 import java.nio.file.attribute.BasicFileAttributes;
11 
12 public class File {
13 
14     public static void main(String args[]) throws IOException {
15         String glob = "glob:**/*.{java,txt}";
16         String path = "D:\\java\\eclipse-workspace\\testjava";
17         match(glob, path);
18     }
19 
20     public static void match(String glob, String location) throws IOException {
21 
22         final PathMatcher pathMatcher = FileSystems.getDefault().getPathMatcher( glob);
23 
24         Files.walkFileTree(Paths.get(location), new SimpleFileVisitor<Path>() {
25 
26             @Override
27             public FileVisitResult visitFile(Path path,
28                     BasicFileAttributes attrs) throws IOException {
29                 if (pathMatcher.matches(path)) {
30                     System.out.println(path);
31                 }
32                 return FileVisitResult.CONTINUE;
33             }
34 
35             @Override
36             public FileVisitResult visitFileFailed(Path file, IOException exc)
37                     throws IOException {
38                 return FileVisitResult.CONTINUE;
39             }
40         });
41     }
42 
43 }
复制代码

 

 


 

3.使用Files. walkFileTree()找出指定文件夹下所有包容指定字符串的txt文件。

复制代码
 1 package com.test;                                                                                                                    
 2 import java.io.IOException;                                                                                                          
 3 import java.nio.file.FileSystems;                                                                                                    
 4 import java.nio.file.FileVisitResult;                                                                                                
 5 import java.nio.file.Files;                                                                                                          
 6 import java.nio.file.Path;                                                                                                           
 7 import java.nio.file.PathMatcher;                                                                                                    
 8 import java.nio.file.Paths;                                                                                                          
 9 import java.nio.file.SimpleFileVisitor;                                                                                              
10 import java.nio.file.attribute.BasicFileAttributes;                                                                                  
11                                                                                                                                      
12  public class File {                                                                                                                 
13                                                                                                                                      
14     public static void main(String args[]) throws IOException {                                                                      
15          String glob = "glob:**/*.{java,txt}";                                                                                       
16          String path = "D:/";                                                                                                        
17         match(glob, path);                                                                                                           
18      }                                                                                                                               
19                                                                                                                                      
20      public static void match(String glob, String location) throws IOException {                                                     
21                                                                                                                                      
22          final PathMatcher pathMatcher = FileSystems.getDefault().getPathMatcher( glob);                                             
23                                                                                                                                      
24          Files.walkFileTree(Paths.get(location), new SimpleFileVisitor<Path>() {                                                     
25                                                                                                                                      
26              @Override                                                                                                               
27              public FileVisitResult visitFile(Path path,                                                                             
28                      BasicFileAttributes attrs) throws IOException {                                                                 
29                  if (pathMatcher.matches(path)) {                                                                                    
30                      System.out.println(path);                                                                                       
31                 }                                                                                                                    
32                  return FileVisitResult.CONTINUE;                                                                                    
33              }                                                                                                                       
34                                                                                                                                      
35              @Override                                                                                                               
36              public FileVisitResult visitFileFailed(Path file, IOException exc)                                                      
37                      throws IOException {                                                                                            
38                 return FileVisitResult.CONTINUE;                                                                                     
39              }                                                                                                                       
40          });                                                                                                                         
41      }                                                                                                                               
42                                                                                                                                      
43  }                                                                                                                                   
复制代码

 


 

二、动手动脑二

请通过查询JDK文件和使用搜索引擎等方式,看懂此示例代码,并弄明白Watchable、WatchService等类型之间的关系,使用UML类图表示出这些类之间的关系。

1.java.nio.file.WatchService文件系统监视服务的接口类,它的具体实现由监视服务提供者负责加载。

2.java.nio.file.Watchable 实现了 java.nio.file.Watchable 的对象才能注册监视服务 WatchService。java.nio.file.Path实现了 watchable 接口,后文使用 Path 对象注册监视服务。

3.java.nio.file.WatchKey 该类代表着 Watchable 对象和监视服务 WatchService 的注册关系。WatchKey 在 Watchable 对象向 WatchService 注册的时候被创建。它是 Watchable 和 WatchService 之间的关联类。

 

 

标签:java,nio,glob,动脑,动手,IOException,file,import
From: https://www.cnblogs.com/azure011328/p/17801657.html

相关文章

  • 【ROS2机器人入门到实战】动手创建一个移动机器人
    8.3动手创建一个移动机器人写在前面当前平台文章汇总地址:ROS2机器人从入门到实战获取完整教程及配套资料代码,请关注公众号<鱼香ROS>获取教程配套机器人开发平台:两驱版|四驱版为方便交流,搭建了机器人技术问答社区:地址fishros.org.cn大家好,我是小鱼,本节课我们来一起动手创建一个两......
  • 动手动脑5
    1.2.因为IEEE754标准规定:ANaNvalueisusedtorepresenttheresultofcertaininvalidoperationssuchasdividingzerobyzero. forexample, 1.0/0.0 hasthevaluepositiveinfinity,whilethevalueof 1.0/-0.0 isnegativeinfinity.意思就是NaN=0.0/......
  • 动手动脑
    编写一个方法,使用以上算法生成指定数目(比如1000个)的随机整数。源代码:importjava.util.Scanner;importjava.util.Random;publicclassMain{publicstaticvoidmain(String[]args){Scannersin=newScanner(System.in);System.out.println("请输入想......
  • 动手动脑1
    请看以下代码,你发现了有什么特殊之处吗? 下面两个函数名字都叫square,但是他们的参数类型不同,所以程序不会报错,这是函数的重载,static关键字修饰的函数一个程序里只能有一个,但是这是函数的重载,所以两个虽然都用static修饰但是都能叫相同的名字......
  • 《动手学深度学习 Pytorch版》 10.6 自注意力和位置编码
    在注意力机制中,每个查询都会关注所有的键-值对并生成一个注意力输出。由于查询、键和值来自同一组输入,因此被称为自注意力(self-attention),也被称为内部注意力(intra-attention)。本节将使用自注意力进行序列编码,以及使用序列的顺序作为补充信息。importmathimporttorchfromtorc......
  • 《动手学深度学习 Pytorch版》 10.5 多头注意力
    多头注意力(multiheadattention):用独立学习得到的h组不同的线性投影(linearprojections)来变换查询、键和值,然后并行地送到注意力汇聚中。最后,将这h个注意力汇聚的输出拼接在一起,并且通过另一个可以学习的线性投影进行变换,以产生最终输出。对于h个注意力汇聚输出,每一个注意......
  • 《动手学深度学习 Pytorch版》 10.4 Bahdanau注意力
    10.4.1模型Bahdanau等人提出了一个没有严格单向对齐限制的可微注意力模型。在预测词元时,如果不是所有输入词元都相关,模型将仅对齐(或参与)输入序列中与当前预测相关的部分。这是通过将上下文变量视为注意力集中的输出来实现的。新的基于注意力的模型与9.7节中的模型相同,只不过......
  • 《动手学深度学习 Pytorch版》 10.3 注意力评分函数
    上一节使用的高斯核的指数部分可以视为注意力评分函数(attentionscoringfunction),简称评分函数(scoringfunction)。后续把评分函数的输出结果输入到softmax函数中进行运算。最后,注意力汇聚的输出就是基于这些注意力权重的值的加权和。该过程可描述为下图:用数学语言描述为:\[f(\b......
  • 1.从零开始编写一个类nginx工具, 准备篇, 动手造轮子
    wmproxywmproxy将用Rust实现http/https代理,socks5代理,反向代理,静态文件服务器,后续将实现websocket代理,内外网穿透等,会将实现过程分享出来,感兴趣的可以一起造个轮子项目++wmproxy++gite:https://gitee.com/tickbh/wmproxygithub:https://github.com/tickbh/wmproxyP......
  • 《动手学深度学习 Pytorch版》 10.2 注意力汇聚:Nadaraya-Watson 核回归
    importtorchfromtorchimportnnfromd2limporttorchasd2l1964年提出的Nadaraya-Watson核回归模型是一个简单但完整的例子,可以用于演示具有注意力机制的机器学习。10.2.1生成数据集根据下面的非线性函数生成一个人工数据集,其中噪声项\(\epsilon\)服从均值为0,......