• 课后作业5


    :学习于博主  一往无前

    动手动脑

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

        import java.io.IOException;
        import java.nio.file.FileSystems;
        import java.nio.file.FileVisitOption;
        import java.nio.file.FileVisitResult;
        import java.nio.file.FileVisitor;
        import java.nio.file.Files;
        import java.nio.file.Path;
        import java.nio.file.Paths;
        import java.nio.file.attribute.BasicFileAttributes;
        import java.util.EnumSet;
    
    
        public class Calculatefile implements FileVisitor<Object> {
         private final long accepted_size;
         public  Calculatefile(String glob,long accepted_size) {
              FileSystems.getDefault().getPathMatcher("glob:" +glob);
              this.accepted_size=accepted_size; 
            }
           void search(Path file) throws IOException {
            long size = (Long) Files.getAttribute(file, "basic:size");
            if(size <=accepted_size) {
             System.out.println(file);
            }
           }
           @Override
           public FileVisitResult postVisitDirectory(Object dir, IOException exc)throws IOException {
            return FileVisitResult.CONTINUE;
           }
           @Override
           public FileVisitResult preVisitDirectory(Object dir, BasicFileAttributes attrs)throws IOException {
            return FileVisitResult.CONTINUE;
           }
           @Override
           public FileVisitResult visitFile(Object file, BasicFileAttributes attrs)throws IOException {
          search((Path) file);
             return  FileVisitResult.CONTINUE;
          }
           @Override
           public FileVisitResult visitFileFailed(Object file, IOException exc)throws IOException {
          return FileVisitResult.CONTINUE;
           }
           
           
           public static void main(String[] args) throws IOException{
            String glob=  "*.jpg";  
            long size = 1024;
            Path fileTree = Paths.get("D:/");
            Calculatefile walk=new Calculatefile(glob, size);
            EnumSet<FileVisitOption> opts=EnumSet.of(FileVisitOption.FOLLOW_LINKS);
            System.out.println("D盘中大小于1KB的文件有");
            Files.walkFileTree(fileTree, opts, Integer.MAX_VALUE, walk);
           }
        }

    运行结果:

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

    import java.io.IOException;
    import java.nio.file.FileSystems;
    import java.nio.file.FileVisitResult;
    import java.nio.file.Files;
    import java.nio.file.Path;
    import java.nio.file.PathMatcher;
    import java.nio.file.Paths;
    import java.nio.file.SimpleFileVisitor;
    import java.nio.file.attribute.BasicFileAttributes;
    
    public class Findtxtandjava {
    
        public static void main(String args[]) throws IOException {
            String glob = "glob:**/*.{java,txt}";
            String path = "D:\eclipse-workspace\Shiyan5";
            match(glob, path);
        }
    
        public static void match(String glob, String location) throws IOException {
    
            final PathMatcher pathMatcher = FileSystems.getDefault().getPathMatcher( glob);
    
            Files.walkFileTree(Paths.get(location), new SimpleFileVisitor<Path>() {
    
                @Override
                public FileVisitResult visitFile(Path path,
                        BasicFileAttributes attrs) throws IOException {
                    if (pathMatcher.matches(path)) {
                        System.out.println(path);
                    }
                    return FileVisitResult.CONTINUE;
                }
    
                @Override
                public FileVisitResult visitFileFailed(Path file, IOException exc)
                        throws IOException {
                    return FileVisitResult.CONTINUE;
                }
            });
        }
    
    }

    运行结果:

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

    目前不会。

    课后作业

    1.编写一个程序,指定一个文件夹,能自动计算出其总容量。

    package bao;
    
    import java.io.File;
    import java.util.ArrayList;
     
    public class Calculatefile1 {
       static long size=0;
     private static ArrayList<String> filelist=new ArrayList<String>();
     public static void main(String[] args) {
         Calculatefile1 s=new Calculatefile1();
      String filePath="D:\eclipse-workspace\Shiyan5";
      s.getFiles(filePath);
      
     }
    
    void getFiles(String filePath) {
      
     File root=new File(filePath);
      File[] files=root.listFiles();
      for(File file:files) {
      if(file.isDirectory()) {
        getFiles(file.getAbsolutePath());
       filelist.add(file.getAbsolutePath());
       }else {
        size+=file.getAbsolutePath().length();
       }
      }
     System.out.println("Size:"+size);
    
      }
       
    }

    运行结果:

    2.编写一个文件加解密程序,通过命令行完成加解密工作

    暂时不会。

    3.编写一个文件分割工具,能把一个大文件分割成多个小的文件。并且能再次把它们合并起来得到完整的文件。

    暂时不会。

  • 相关阅读:
    MobileNet V1 V2
    异常检测 与 One Class SVM
    异常检测
    图像分割
    1x1卷积核的作用
    迁移学习
    python
    图像分割
    图像分割
    Nagios
  • 原文地址:https://www.cnblogs.com/my---world/p/9990106.html
Copyright © 2020-2023  润新知