java输入输出(14)NIO.2

  1. NIO.2是java7对原有的NIO进行了重大改进
  2. 这里首先介绍一下Path,Paths,Files的一些用法,具体的讲解穿插在代码中
    //Path接口代表一个平台无关的平台路径
    import java.nio.file.Path;
    import java.nio.file.Paths;
    
    public class PathTest {
        public static void main(String args[]){
            Path p = Paths.get(".");
    //        以当前路径来创建Path对象
    
            System.out.println("path里包含的路径数量:"+ p.getNameCount());
    //        getNameCount返回包含的路径数目
    
            System.out.println("p的根路径"+p.getRoot());
    //        getRoot返回路径的根路径
    
            Path absolutePath = p.toAbsolutePath();
    //        toAbsolutePath可以将当前路径转换为绝对路径
    
            System.out.println(absolutePath);
    
            System.out.println("绝对路径"+absolutePath.getRoot());
            System.out.println("包含的路径数量"+absolutePath.getNameCount());
            System.out.println(absolutePath.getName(2));
    
            Path p2 = Paths.get("e:", "JavaProject");
    //        这一句是实例化一个path对象,路径为E:/JavaProject
    
            System.out.println(p2);
        }
    }
    //运行这个程序,可以看到以下运行结果
    //        path里包含的路径数量:1
    //        p的根路径null
    //        E:\JavaProject\FileOperatins\.
    //        绝对路径E:\
    //        包含的路径数量3
    //        .
    //Files包含了大量静态工具方法来操作文件
    import java.io.FileOutputStream;
    import java.nio.charset.Charset;
    import java.nio.file.FileStore;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    import java.util.ArrayList;
    import java.util.List;
    
    public class FilesTest {
        public static void main(String args[]) throws Exception{
            Files.copy(Paths.get("src/FilesTest.java"), new FileOutputStream("src/a.txt"));
    //        copy方法传入两个文件参数,作用是将前面一个文件的内容赋值到后面的文件中
    
            System.out.println("该文件是否隐藏文件" +Files.isHidden(Paths.get("src/FilesTest.java")));
    //        isHidden方法可以判断文件按是否为隐藏文件
    
            List<String> lines = Files.readAllLines(Paths.get("src/FilesTest.java"), Charset.forName("UTF-8"));
    //        readAllLines方法是逐行读取问价的内容,后面一个参数是给定字符集,返回一个String的集合
    
            System.out.println(lines);
    
            System.out.println("FilesTest.java的大小为"+Files.size(Paths.get("src/FilesTest.java")));
    //       size方法 返回文件的大小(以字节为单位)。
    
            List<String> peom = new ArrayList<>();
            peom.add("aaa");
            peom.add("bbb");
    
            Files.write(Paths.get("pome.txt"), peom,Charset.forName("gbk"));
    //       write方法是将指定的内容写入到指定的文件之中,如果文件不存在则创建该文件
    
            FileStore cStore = Files.getFileStore(Paths.get("C:"));
    //       getFileStore方法的官方解释为返回表示文件所在文件存储区的 FileStore。
    
    
            System.out.println("共有空间"+cStore.getTotalSpace());
            System.out.println("可用空间"+cStore.getUsableSpace());
        }
    }
    //运行这个程序可以看到以下显示结果和在a.txt中看到和这个java文件一样的显示内容
    //        该文件是否隐藏文件false
    //        [import java.io.File;, import java.io.FileOutputStream;, import java.nio.charset.Charset;, import java.nio.file.FileStore;, import java.nio.file.Files;, import java.nio.file.Paths;, import java.util.ArrayList;, import java.util.List;, , public class FilesTest {,     public static void main(String args[]) throws Exception{,         Files.copy(Paths.get("src/FilesTest.java"), new FileOutputStream("src/a.txt"));, //        copy方法传入两个文件参数,作用是将前面一个文件的内容赋值到后面的文件中, ,         System.out.println("该文件是否隐藏文件" +Files.isHidden(Paths.get("src/FilesTest.java")));, //        isHidden方法可以判断文件按是否为隐藏文件, ,         List<String> lines = Files.readAllLines(Paths.get("src/FilesTest.java"), Charset.forName("UTF-8"));, //        readAllLines方法是逐行读取问价的内容,后面一个参数是给定字符集,返回一个String的集合, ,         System.out.println(lines);, ,         System.out.println("FilesTest.java的大小为"+Files.size(Paths.get("src/FilesTest.java")));,         List<String> peom = new ArrayList<>();,         peom.add("aaa");,         peom.add("bbb");,         Files.write(Paths.get("pome.txt"), peom,Charset.forName("gbk"));,         FileStore cStore = Files.getFileStore(Paths.get("C:"));,         System.out.println("共有空间"+cStore.getTotalSpace());,         System.out.println("可用空间"+cStore.getUsableSpace());,     }, }]
    //        FilesTest.java的大小为1476
    //            共有空间161877315584
    //     可用空间131081998336

    这是我看李刚编著的《疯狂Java讲义》后总结出来的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值