Java NIO 2 Files類的常用方法

2021-09-24 00:02:24 字數 3582 閱讀 6518

files類是乙個工具類,提供了大量的靜態方法來操作檔案、資料夾。

files類常用方法:

long size(path path) //返回檔案大小

boolean isdirectory(path path) //是否是資料夾

boolean i***ecutable(path path) //是否是可執行檔案

boolean ishidden(path path) //是否是隱藏的

boolean exists(path path) //該檔案/資料夾是否存在

boolean notexists(path path) //是否不存在

boolean isreadable(path path) //是否可讀

boolean iswritable(path path) //是否可寫

createfile(path filepath) //建立檔案,只能是檔案,不能是資料夾。如果已存在同名檔案,會報錯。

createdirectory(path dirpath) //建立資料夾。如果已存在同名資料夾,會報錯

createtempfile(string prefix, string suffix) //在os的臨時資料夾中建立乙個臨時檔案

createtempfile(path dir, string prefix, string suffix) //在指定的目錄下建立乙個臨時檔案

prefix是檔名字首,suffix是檔名字尾,一般是副檔名,比如「.zip」。中間會使用系統生成的乙個隨機數。返回該臨時檔案的path物件(絕對路徑)。

createtempdirectory(string prefix) //在os的臨時資料夾中建立乙個臨時資料夾。

createtempdirectory(path dir, string prefix) //在指定的目錄下建立乙個臨時資料夾

資料夾名:字首+乙個系統生成的隨機數

files.copy(path src, path target) //複製檔案,如果存在同名的目標檔案,會報錯。

files.copy(path src, path target , standardcopyoption.replace_existing) //如果存在同名的目標檔案,會替換

只能是檔案,不能是資料夾,要複製資料夾需要遞迴複製子檔案、子資料夾。目標檔名可與原檔名不同。

files.move(path src, path target) //剪下,如果目標已存在,會報錯

files.move(path src, path target , standardcopyoption.replace_existing) //如果目標已存在,會替換。雖然是move,但常量還是是standardcopyoption.replace_existing。

可以是檔案、資料夾。

剪下是一種特殊的複製,先複製,複製完成後再刪除原檔案/資料夾。

files.delete(path path)  //刪除檔案、空目錄。如果不存在,會報錯

files.deleteifexists(path path) //存在才刪除,不存在時不會報錯。

只能刪除檔案、空目錄。如果該資料夾下包含子檔案、子目錄,即便子目錄是空的,也會報錯。

要刪除有內容的資料夾,需要遞迴刪除子檔案、子資料夾。

檢視某個盤的大小:

1 path path=paths.get(「d;\」);

2 filestore store=files.getfilestore(path);

3 system.out.println(store.gettotalspace()); //總大小。位元組數

4 system.out.println(store.getusablespace()); //可用大小

獲取某個資料夾下所有子檔案、子資料夾的路徑:

//只能是資料夾

path path=paths.get(「d:\二次元」);

//列出該資料夾下所有子檔案、子資料夾的路徑。

files.list(path).foreach(pathitem -> system.out.println(pathitem)); //pathitem代表乙個子檔案/資料夾的path物件

/*

d:\二次元\a.png

d:\二次元\c.png

d:\二次元\q.png

d:\二次元\test

*/

1 //只能是文字檔案

2 path path=paths.get(「d:\二次元\1.txt」);

3 //讀取所有的行,逐行輸出

4 files.lines(path).foreach(line->system.out.println(line)); //line代表一行

5 //可指定解碼字符集。只能是charset物件,不能是string。

6 // files.lines(path,charset.forname(「gbk」)).foreach(line->system.out.println(line));

讀取檔案內容:

string files.readstring(path path) //讀取所有文字,以string形式返回。會讀取換行符。只能是文字檔案

string files.readstring(path path, charset charset) //可指定解碼字符集

list files.readalllines(path path) //讀取所有的行,以list形式返回,一行就是乙個string型別的元素。只能是文字檔案

list files.readalllines(path path, charset charset) //可指定解碼字符集

byte files.readallbytes(path path) //讀取檔案所有資料,以位元組陣列形式返回。檔案可以是任意型別。

寫入檔案:

files.write(path path, byte bytes) //寫入乙個byte

files.writestring(path path, charsequence cs) //寫入乙個字串行,可以是string、stringbuffer、stringbuilder、char

files.writestring(path path, charsequence cs, charset charset) //指定編碼字符集

以上3個方法均可在末尾指定引數個數可變的的可選引數openoption,常用的值:

建立物件:

files.newbufferedreader(path path);

files.newbufferedreader(path path,charset charset); //可指定解碼字符集

files.newbufferedwriter(path path);

files.newbufferedwriter(path path, charset charset); //可指定編碼字符集

以上2個方法均可指定引數個數可變的openoption。

files.newinputstream(path path);

files.newoutputstream(path path);

以上2個方法均可指定引數個數可變的openoption。

原文:

類的操作(2) 類的繼承

在看繼承之前,先了解幾個概念 父類 基類 被繼承的類 子類 派生類 通過繼承建立的新類 繼承 是指在不改變父類方法的情況下,對父類進行擴充套件和復用 class father 定義父類 def init self,name self.name name print name s self.name ...

類的設計2

包含以下屬性 國家,郵編,省份,城市,街道 設計 private string nation private string zipcode private string province private string street 函式 public setnation string nation ...

類的應用 2

描述符 本質是新式類,至少實現 get set delete 中的乙個。get 呼叫乙個屬性時觸發 set 為乙個屬性賦值時觸發 delete 採用del刪除屬性時觸發 資料描述符 至少實現了 get set 非資料描述符 沒有實現 set 靜態property 本質是實現了get,set,dele...