- NIO.2是java7对原有的NIO进行了重大改进
- 这里首先介绍一下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讲义》后总结出来的。
java输入输出(14)NIO.2
最新推荐文章于 2021-11-11 15:42:18 发布