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...