java輸入輸出(14)NIO.2
阿新 • • 發佈:2018-12-09
- 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