Paths:通過(guò)get()方法返回一個(gè)Path對(duì)象,Path用于表示文件路徑和文件。
Files:提供了大量處理文件的方法,例如文件復(fù)制、讀取、寫(xiě)入,獲取文件屬性、快捷遍歷文件目錄等.....
Files 和 Paths是Java8新增的工具類(lèi),在處理文件方面功能非常強(qiáng)大。
Paths類(lèi)
//以當(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類(lèi)獲取文件或文件目錄路徑可以使用采用多個(gè)字符串形式,也可以使用Path.get(D:\ReviewIO\URL)這種形式。返回的Path對(duì)象完全可以代替File類(lèi)用于文件IO操作。
Files類(lèi)
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完成寫(xiě)入文件的方法
//寫(xiě)入內(nèi)容到文件
ArrayList<String> as = new ArrayList<>();
as.add("A");
as.add("B");
as.add("C");
Files.write(dest, as, Charset.forName("GBK"));Files類(lèi)的方法。
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));//文件是否可寫(xiě)
//獲取Paths對(duì)象對(duì)應(yīng)的文件路徑的文件儲(chǔ)存
FileStore f = Files.getFileStore(Paths.get("F:"));
FileStore e = Files.getFileStore(Paths.get("E:"));
System.out.println("F盤(pán)的總大小" + f.getTotalSpace());
System.out.println("F盤(pán)的可用大小" + f.getUsableSpace());
System.out.println("F盤(pán)的未分配空間" + f.getUnallocatedSpace());
}
除了以上的方法之外,F(xiàn)iles類(lèi)還提供遍歷文件和目錄、監(jiān)控文件變化、讀取和設(shè)置文件權(quán)限、查看文件屬性的方法,功能十分強(qiáng)大。
