Paths类

  1. public static void pathTest(){
  2. Path path = Paths.get("~");
  3. System.out.println(path);
  4. System.out.println(path.getNameCount());
  5. System.out.println(path.getRoot());
  6. Path absolutePath = path.toAbsolutePath();
  7. System.out.println(absolutePath);
  8. System.out.println(absolutePath.getNameCount());
  9. System.out.println(absolutePath.getFileSystem());
  10. //依次打印父路径
  11. absolutePath.forEach(name->System.out.println(name));
  12. }

Files类 ,这个是重点

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

FileVisitor遍历文件和目录

  1. public static void walkFileTree() throws IOException{
  2. Files.walkFileTree(Paths.get("."), new SimpleFileVisitor<Path>() {
  3.  
  4. @Override
  5. public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException {
  6. // TODO Auto-generated method stub
  7. // return super.preVisitDirectory(dir, attrs);
  8. System.out.println("正在访问:" + dir + "目录");
  9. return FileVisitResult.CONTINUE;
  10. }
  11.  
  12. @Override
  13. public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
  14. // TODO Auto-generated method stub
  15. // return super.visitFile(file, attrs);
  16. System.out.println("\t正在访问" + file + "文件");
  17. if (file.endsWith("LearnIO.java")) {
  18. System.out.println("******找到目标文件LearnIO.java******");
  19. return FileVisitResult.TERMINATE; // 找到了就终止
  20. }
  21. return FileVisitResult.CONTINUE; // 没找到继续找
  22. }
  23. }); ;
  24. }

使用WatchService监控文件变化

  1. private static void WatchServiceTest() throws IOException, InterruptedException {
  2. // TODO Auto-generated method stub
  3. WatchService watchService = FileSystems.getDefault().newWatchService();
  4. Paths.get(".").register(watchService,
  5. StandardWatchEventKinds.ENTRY_CREATE,
  6. StandardWatchEventKinds.ENTRY_DELETE,
  7. StandardWatchEventKinds.ENTRY_MODIFY
  8. );
  9. while(true){
  10. //获取下一个文件的变化事件
  11. WatchKey key = watchService.take();
  12. for(WatchEvent<?> event : key.pollEvents()){
  13. System.out.println(event.context()+"文件发生了"
  14. +event.kind()+"事件");
  15. }
  16. //重设WatchKey
  17. boolean valid = key.reset();
  18. //如果重设失败,退出监听
  19. if(!valid){
  20. break;
  21. }
  22. }
  23. }

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

java8--IO工具类(java疯狂讲义3复习笔记)的更多相关文章

  1. java8--类加载机制与反射(java疯狂讲义3复习笔记)

    本章重点介绍java.lang.reflect包下的接口和类 当程序使用某个类时,如果该类还没有被加载到内存中,那么系统会通过加载,连接,初始化三个步骤来对该类进行初始化. 类的加载时指将类的clas ...

  2. java8--网络编程(java疯狂讲义3复习笔记)

    重点复习一下网络通信和代理 java的网络通信很简单,服务器端通过ServerSocket建立监听,客户端通过Socket连接到指定服务器后,通信双方就可以通过IO流进行通信. 需要重点看的工具类:I ...

  3. java8--NIO(java疯狂讲义3复习笔记)

    NIO采用内存映射文件的方式处理输入输出,NIO将文件或文件的一段区域映射到内存中,这样就可以像访问内存一样来访问文件了(这种方式模拟了操作系统上的虚拟内存的概念),通过这种方式来进行输入输出比传统的 ...

  4. java8--异常处理(java疯狂讲义3复习笔记)

    try,catch,finally,throw,throws java将异常分为两种,Checked异常和Runtime异常. IndexOutOfBoundsException NumberForm ...

  5. java8--多线程(java疯狂讲义3复习笔记)

    多线程这块,平时用的框架里都封装好了,只有写批处理和工具包时用过几次.现在水平仅仅限于会用的程度,需要全面深入学习多线程. 主要内容:创建线程,启动线程,控制线程,多线程的同步,线程池,使用线程安全的 ...

  6. java8--IO(java疯狂讲义3复习笔记)

    产生文件 File file = new File("abc.txt"); if(!file.exists()){ System.out.println(file.exists() ...

  7. java8--Mysql数据库与JDBC编程(java疯狂讲义3复习笔记)

    JDBC:java database connectivity 数据库基本命令: 启动 show databases; create database [if not exists] 数据库名; do ...

  8. 参考《Java疯狂讲义》

    参考<Java疯狂讲义>Lambda表达式支持将代码块作为方法参数,Lambda表达式允许使用更简洁的代码来创建只有一个抽象方法的接口(这种接口被称为函数式接口)的实例 1. Lambda ...

  9. JavaSE-基础语法(二)-系统类(java.lang.*)和工具类(java.util.*)

    系统类(java.lang.*)和工具类(java.util.*) 一.系统类(java.lang.*) 这个包下包含java语言的核心类,如String.Math.System和Thread类等,使 ...

随机推荐

  1. rpm 包管理器

    rpm 包管理器 二进制应用程序的组成部分: 二进制文件.库文件.配置文件.帮助文件 程序包管理器:不同厂商的程序,包管理器也不同. debian:deb文件, dpkg包管理器 redhat: rp ...

  2. tomcat官网改版后下载方式

    位于disk/tomcat目录下 http://archive.apache.org/dist/tomcat/ 具体例如:http://archive.apache.org/dist/tomcat/t ...

  3. 大数据学习——hive使用

    Hive交互shell bin/hive Hive JDBC服务 hive也可以启动为一个服务器,来对外提供 启动方式,(假如是在itcast01上): 启动为前台:bin/hiveserver2 启 ...

  4. google的三篇论文

    文章:MapReduce/GFS/BigTable三大技术资料 文章:Google File System(中文翻译) 文章:MapReduce:超大机群上的简单数据处理 文章:Google's Bi ...

  5. [转]ORA-38500: USING CURRENT LOGFILE option not available without stand

    标签: oracle 10g 数据库 ora-38500 it 分类: IT author:skate time :2009/08/03 在dataguard启用实时恢复的时候,报如下错误: ORA- ...

  6. UITableView点击背景

    系统自定义的点击背景有时间觉得效果不好想换个 - (void)setSelected:(BOOL)selected animated:(BOOL)animated { [super setSelect ...

  7. 【最小费用最大流】N. April Fools' Problem (medium)

    http://codeforces.com/contest/802/problem/N [题解] 方法一: #include<bits/stdc++.h> using namespace ...

  8. MTK GPIO 新增变量配置

    主要涉及的文件: 1.需要配置preloader ,lk ,kernel vendor GPIO_YuSu.cmp文件增加IO别名: 2.需要配置preloader ,lk ,kernel vendo ...

  9. linux mail 发邮件

    system('echo "'.$xmlHeader.$xmlBody.$xmlFooter.'" | mail -s "百度新闻源生成成功,地址=>http:// ...

  10. Spring注解 @Component、@Repository、@Service、@Controller @Resource、@Autowired、@Qualifier 解析

    @Repository.@Service.@Controller 这几个是一个类型,其实@Component 跟他们也是一个类型的 Spring 2.5 中除了提供 @Component 注释外,还定 ...