「ファイルとストリーム」ハンズオン脳

1.使用するファイル。WalkFileTree()指定したフォルダとすべての(例えば1Mなど)指定されたサイズよりも大きいファイルを検索します。

パッケージtext_001。

インポートにjava.io.IOException;
輸入java.nio.file.FileSystems。
輸入java.nio.file.FileVisitOption。
輸入java.nio.file.FileVisitResult;
輸入java.nio.file.FileVisitor;
輸入java.nio.file.Files。
輸入java.nio.file.Path;
輸入java.nio.file.PathMatcher;
輸入java.nio.file.Paths。
輸入java.nio.file.attribute.BasicFileAttributes。
輸入java.util.EnumSet;
パブリック クラスアクションを実装FileVisitor {
  民間 最終PathMatcherマッチャー;
 民間 最終 長いaccepted_size。
 パブリックアクション(文字列グロブ、長いaccepted_size){ 
      整合 = FileSystems.getDefault()getPathMatcher( "グロブ:" +。グロブ)。
      この .accepted_size = accepted_size。
    } 
   ボイド検索(パスファイル)がスローにIOException {
     長いサイズ=(長)Files.getAttribute(ファイル、 "基本:サイズ" )。
    もし(サイズ== accepted_size){ 
     System.out.printlnは(ファイル)。
    } 
   } 
   @Override 
   公衆FileVisitResult postVisitDirectory(オブジェクトDIRは、IOException EXC)はスローにIOException {
     リターンFileVisitResult.CONTINUEと、
   } 
   @Override 
   公共 FileVisitResult preVisitDirectory(オブジェクトDIR、BasicFileAttributesのATTRS)はスローのIOException {
     戻りFileVisitResult.CONTINUEと、
   } 
   @Override 
   公共 FileVisitResult visitFile(オブジェクトファイル、BasicFileAttributesのATTRS)はスローにIOException { 
  検索((パス)ファイル)。
     返す  FileVisitResult.CONTINUEを。
  } 
   @Override 
   公衆FileVisitResult visitFileFailed(オブジェクト・ファイルは、IOException EXC)はスローにIOException {
   リターンFileVisitResult.CONTINUEと、
   } 
   パブリック 静的 ボイドメイン(文字列[]引数)がスローにIOException { 
    文字列グロブ =「* .JPG」を長いサイズ= 1048576; // 1M = 1024K = 1048576字节 
    パスfileTree = Paths.get( "C:/" ); 
    アクション徒歩 = 新しいアクション(グロブ、サイズ); 
    EnumSetのOPTS = EnumSet.of(FileVisitOption.FOLLOW_LINKS)。
    System.out.println( "C盘中大小等于1M的文件有");
    Files.walkFileTree(fileTree、OPTSは、Integer.MAX_VALUE、徒歩); 
   } 
}

 

 

おすすめ

転載: www.cnblogs.com/xhj1074376195/p/11829099.html