博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java8--IO工具类(java疯狂讲义3复习笔记)
阅读量:4602 次
发布时间:2019-06-09

本文共 3708 字,大约阅读时间需要 12 分钟。

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
lines = Files.readAllLines(Paths.get("abc.txt")); lines.forEach (line -> System.out.println(line)); //文件大小 System.out.println(Files.size(Paths.get("abc.txt"))); //向文件里写入东西 List
poem = new ArrayList
(); 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
() { @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; } } }

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

 

转载于:https://www.cnblogs.com/lakeslove/p/6296161.html

你可能感兴趣的文章
数学作业
查看>>
使用pycharm开发web——django2.1.5(二)创建一个app并做一些配置
查看>>
[ZPG TEST 105] 扑克游戏【Huffman】
查看>>
_bzoj2005 [Noi2010]能量采集
查看>>
pat 团体天梯赛 L3-010. 是否完全二叉搜索树
查看>>
烟草MES系统介绍-序
查看>>
优先队列小结
查看>>
线程安全与可重入函数之间的区别与联系
查看>>
bat批处理中如何获取前一天日期
查看>>
{Nodejs} request URL 中文乱码
查看>>
异常及日志使用与项目打包
查看>>
努力,时间,坚持,自律
查看>>
真三 bug PT的凤凰
查看>>
???动态SQL
查看>>
js错误处理与调试理论和办法
查看>>
Binding.StringFormat不起作用的原理和解决
查看>>
css hack兼容写法
查看>>
CSS两列布局 一边固定 一边自适应
查看>>
Hadoop2.6.0 动态增加节点
查看>>
图论的一些概念、定理
查看>>