• java8IO工具类(java疯狂讲义3复习笔记)


    Paths类

    public static void pathTest(){
            Path path = Paths.get("~");
            System.out.println(path);
            System.out.println(path.getNameCount());
            System.out.println(path.getRoot());
            Path absolutePath = path.toAbsolutePath();
            System.out.println(absolutePath);
            System.out.println(absolutePath.getNameCount());
            System.out.println(absolutePath.getFileSystem());
            //依次打印父路径
            absolutePath.forEach(name->System.out.println(name));
        }

    Files类 ,这个是重点

    public static void filesTest() throws FileNotFoundException, IOException{
            //复制文件
            Files.copy(Paths.get("abc.txt"), new FileOutputStream("testFile/abc2.txt"));
            //判断是否隐藏文件
            System.out.println(Files.isHidden(Paths.get("abc.txt")));
            //读取文件的所有行到list
            List<String> lines = Files.readAllLines(Paths.get("abc.txt"));
            lines.forEach (line -> System.out.println(line));
            //文件大小
            System.out.println(Files.size(Paths.get("abc.txt")));
            //向文件里写入东西
            List<String> poem = new ArrayList<String>();
            poem.add("quzhinannnnnnnnnnn曲志楠南安安那那那那那");
            poem.addAll(lines);
            Files.write(Paths.get("testFile/path.txt"), poem, Charset.forName("utf-8"));
            //列出文件目录下的所有文件(不递归)
            Files.list(Paths.get("/")).forEach(Name -> System.out.println(Name));
            //打印所有文件到控制台
            Files.lines(Paths.get("abc.txt"),Charset.forName("utf-8")).forEach(line -> System.out.println(line));
            //查看存储空间
            FileStore fs = Files.getFileStore(Paths.get("/"));
            System.out.println(fs.getTotalSpace());
        }

    FileVisitor遍历文件和目录

    public static void walkFileTree() throws IOException{
            Files.walkFileTree(Paths.get("."), new SimpleFileVisitor<Path>() {  
                  
                @Override  
                public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException {  
                    // TODO Auto-generated method stub  
                    // return super.preVisitDirectory(dir, attrs);  
                    System.out.println("正在访问:" + dir + "目录");  
                    return FileVisitResult.CONTINUE;  
                }  
      
                @Override  
                public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {  
                    // TODO Auto-generated method stub  
                    // return super.visitFile(file, attrs);  
                    System.out.println("\t正在访问" + file + "文件");  
                    if (file.endsWith("LearnIO.java")) {  
                        System.out.println("******找到目标文件LearnIO.java******");  
                        return FileVisitResult.TERMINATE; // 找到了就终止  
                    }
                    return FileVisitResult.CONTINUE; // 没找到继续找  
                }  
            });  ;
        }

     使用WatchService监控文件变化

    private static void WatchServiceTest() throws IOException, InterruptedException {
            // TODO Auto-generated method stub
            WatchService watchService = FileSystems.getDefault().newWatchService();
            Paths.get(".").register(watchService,
                    StandardWatchEventKinds.ENTRY_CREATE,
                    StandardWatchEventKinds.ENTRY_DELETE,
                    StandardWatchEventKinds.ENTRY_MODIFY
                    );
            while(true){
                //获取下一个文件的变化事件
                WatchKey key = watchService.take();
                for(WatchEvent<?> event : key.pollEvents()){
                    System.out.println(event.context()+"文件发生了"
                            +event.kind()+"事件");
                }
                //重设WatchKey
                boolean valid = key.reset();
                //如果重设失败,退出监听
                if(!valid){
                    break;
                }
            }
        }

    访问文件属性,这个感觉用的不多,用到时再来看吧.

  • 相关阅读:
    网络与通信面试
    拥塞控制
    POSIX
    操作系统面试
    为什么大家都用变量"i"?
    shape与sprite和movieclip的区别
    AS3之麦克风接口【flash.media.Microphone 类】
    Flex 入门之垃圾回收机理
    Flash Player重绘
    时间效率,Timer和EnterFrame在FP 10.1之后测试和建议
  • 原文地址:https://www.cnblogs.com/lakeslove/p/6296161.html
Copyright © 2020-2023  润新知