Paths:通過(guò)get()方法返回一個(gè)Path對(duì)象,Path用于表示文件路徑和文件。
Files:提供了大量處理文件的方法,例如文件復(fù)制、讀取、寫入,獲取文件屬性、快捷遍歷文件目錄等.....
Files 和 Paths是Java8新增的工具類,在處理文件方面功能非常強(qiáng)大。
Paths類
//以當(dāng)前路徑作為Path對(duì)象 Path p = Paths.get("."); //使用傳入的字符串返回一個(gè)Path對(duì)象 Path p2 = Paths.get("D","ReviewIO","URL"); //對(duì)應(yīng)的路徑 System.out.println("p對(duì)象的對(duì)應(yīng)路徑:" + p.toString()); System.out.println("p2對(duì)象的對(duì)應(yīng)路徑:" + p2.toString()); //路徑數(shù)量是以路徑名的數(shù)量作為標(biāo)準(zhǔn) System.out.println("p路徑數(shù)量:" + p.getNameCount()); System.out.println("p2路徑數(shù)量:" + p2.getNameCount()); //獲取絕對(duì)路徑 System.out.println("p絕對(duì)路徑:" + p.toAbsolutePath()); System.out.println("p2絕對(duì)路徑:" + p2.toAbsolutePath()); //獲取父路徑 System.out.println("p父路徑:" + p.getParent()); System.out.println("p2父路徑:" + p2.getParent()); //獲取p2對(duì)象的文件名或者文件目錄名 System.out.println(p2.getFileName()); //通過(guò)Path對(duì)象返回一個(gè)分隔符對(duì)象 Spliterator<Path> split = p2.spliterator();
Paths類獲取文件或文件目錄路徑可以使用采用多個(gè)字符串形式,也可以使用Path.get(D:\ReviewIO\URL)這種形式。返回的Path對(duì)象完全可以代替File類用于文件IO操作。
Files類
Files完成文件復(fù)制的方法,方法很簡(jiǎn)單。
Path source = Paths.get("F:","Java經(jīng)典練習(xí)題.pdf"); Path dest = Paths.get("F:","files.txt"); File f = new File("F:\ok.pdf"); f.createNewFile();//如果f對(duì)象對(duì)應(yīng)路徑不存在就創(chuàng)建一個(gè)。 System.out.println("source對(duì)象的文件路徑:" + source); //復(fù)制文件 Files.copy(source, new FileOutputStream(f))
Files完成寫入文件的方法
//寫入內(nèi)容到文件 ArrayList<String> as = new ArrayList<>(); as.add("A"); as.add("B"); as.add("C"); Files.write(dest, as, Charset.forName("GBK"));
Files類的方法。
public static void main(String[] args) throws IOException { Path source = Paths.get("F:","Java經(jīng)典練習(xí)題.pdf"); /** 返回值為boolean的操作方法樣例 */ System.out.println(Files.isHidden(source));//文件是否隱藏 System.out.println(Files.isExecutable(source));//文件是否可執(zhí)行 System.out.println(Files.isWritable(source));//文件是否可寫 //獲取Paths對(duì)象對(duì)應(yīng)的文件路徑的文件儲(chǔ)存 FileStore f = Files.getFileStore(Paths.get("F:")); FileStore e = Files.getFileStore(Paths.get("E:")); System.out.println("F盤的總大小" + f.getTotalSpace()); System.out.println("F盤的可用大小" + f.getUsableSpace()); System.out.println("F盤的未分配空間" + f.getUnallocatedSpace()); }
除了以上的方法之外,F(xiàn)iles類還提供遍歷文件和目錄、監(jiān)控文件變化、讀取和設(shè)置文件權(quán)限、查看文件屬性的方法,功能十分強(qiáng)大。