美文网首页
Java处理IO的现代方式

Java处理IO的现代方式

作者: 王小杰at2019 | 来源:发表于2019-01-24 11:31 被阅读2次

    介绍

    Java 7 引入了全新的 I/O API(一般称为 NIO.2),几乎可以完全取代以前使用 File 类处理
    I/O 的方式
    。新添加的各个类都在 java.nio.file 包中。
    很多情况下,使用 Java 7 引入的新 API 处理 I/O 更简单。新 API 分为两大部分:第一部分
    是一个新抽象,Path 接口(这个接口的作用可以理解为表示文件的位置,这个位置可以有
    内容,也可以没有);第二部分是很多处理文件和文件系统的新方法,方便且实用。
    新方法都是 Files 类的静态方法。

    部分功能实例

       //文件拷贝
            Files.copy(Paths.get("C:\\Users\\WangYa\\Desktop\\面试\\13284254-6f518e7f218adb11.png"), Paths.get("d:\\test.png"), StandardCopyOption.REPLACE_EXISTING);
            //文件属性
            Map<String, Object> attributes = Files.readAttributes(Paths.get("C:\\Users\\WangYa\\Desktop\\面试\\13284254-6f518e7f218adb11.png"), "*");
            log.info("attributes:{}", JSON.toJSON(attributes));
            //列出路径
            Files.list(Paths.get("d:\\")).forEach(path -> {
                log.info("path:{}", path);
            });
    
            //递归列出木目录
            Files.walk(Paths.get("D:\\KuGou"), FileVisitOption.FOLLOW_LINKS).forEach(
                    path -> {
                        log.info(path.toString());
                    }
            );
    
            //递归限定深度
            Files.walk(Paths.get("D:\\Program Files"), 1, FileVisitOption.FOLLOW_LINKS).forEach(
                    path -> {
                        log.info(path.toString());
                    }
            );
    
    
            // 存储器空间
            FileStore fileStore = Files.getFileStore(Paths.get("D:"));
            log.info("fileStore :{}", JSON.toJSON(fileStore));
    
    
            //读取一个文本文件
            byte[] bytes = Files.readAllBytes(Paths.get("C:\\Users\\WangYa\\Desktop\\build\\api.sh"));
            log.info("content:{}", new String(bytes, "utf-8"));
    
            UserPrincipal owner = Files.getOwner(Paths.get("C:\\Users\\WangYa\\Desktop\\build\\api.sh"));
            log.info("owner:{}", owner.getName());
    
    

    一个简单的文件下载操作,非常简单,不用任何第三方包

      URL url = new URL("http://mirrors.shu.edu.cn/apache/tomcat/tomcat-9/v9.0.14/bin/apache-tomcat-9.0.14.tar.gz");
            Files.copy( url.openConnection().getInputStream(),Paths.get("D://apache-tomcat-9.0.14.tar.gz"));
    

    相关文章

      网友评论

          本文标题:Java处理IO的现代方式

          本文链接:https://www.haomeiwen.com/subject/occyjqtx.html