io流(input output) :
位元組流輸入位元組流:
———–| inputstream 所有輸入位元組流的基類 抽象類
—————–| fileinputstream 讀取檔案資料的輸入位元組流
—————–| bufferedinputstream 緩衝輸入字元流 該類出現的目的是為了提高讀取檔案 資料的效率。 這個類其實只不過是在內部維護了乙個8kb的位元組陣列而已。
輸出位元組流:
———–| outputstream 所有輸出位元組流的基類。 抽象類。
—————-| fileoutputstream 向檔案輸出資料的輸出位元組流
—————-| bufferedoutputstream 緩衝輸出位元組流 該類出現的目的也是為了提高向檔案寫資料的效率。 這個類的也只不過是在內部維護了乙個8kb的位元組陣列而已。
字元流 : 字元流 = 位元組流 + 編碼(解碼)
輸入字元流:
———| reader 所有輸入字元流的基類。 抽象類。
—————-| filereader 讀取檔案資料的輸入字元流。
—————-| bufferedreader 緩衝輸入字元流 該類出現的目的是為了提高讀取檔案資料的效率與拓展filereader的(readline)功能。 這個類的也只不過是在內部維護了乙個8kb的字元陣列而已。
輸出字元流:
———| writer 所有輸出字元流的基類。 抽象類
—————-| filewriter 向檔案輸出資料的輸出字元流
—————-| bufferedwriter 緩衝輸出字元流 該類出現的目的是為了提高寫檔案資料的效率與拓展filewriter的(newline)功能.
io技術主要的作用是解決裝置與裝置之間 的資料傳輸問題。 比如: 硬碟—>記憶體 記憶體的資料—->硬碟上 把鍵盤的資料——->記憶體中
資料儲存到硬碟上,該資料就可以做到永久性的儲存。 資料一般是以檔案的形式儲存到硬碟上
sun使用了乙個file類描述了檔案或者資料夾的。
file類可以描述乙個檔案或者乙個資料夾。
file類的構造方法:
file(string pathname) 指定檔案或者資料夾的路徑建立乙個file檔案。
file(file parent, string child) 根據 parent 抽象路徑名和 child 路徑名字串建立乙個新 file 例項。
file(string parent, string child)
目錄分隔符: 在windows機器上 的目錄分隔符是 \ ,在linux機器上的目錄分隔符是/ .
注意: 在windows上面\ 與 / 都可以使用作為目錄分隔符。 而且,如果寫/ 的時候只需要寫乙個即可。
public
class demo1
}
路徑問題:
絕對路徑: 該檔案在硬碟上 的完整路徑。絕對路徑一般都是以碟符開頭的。
相對路徑: 相對路徑就是資源檔案相對於當前程式所在的路徑。
. 當前路徑
.. 上一級路徑
注意: 如果程式當前所在的路徑與資源檔案不是在同乙個盤下面,是沒法寫相對路徑 的。
public
class demo2
}
建立:
createnewfile() 在指定位置建立乙個空檔案,成功就返回true,如果已存在就不建立然後返回false
mkdir() 在指定位置建立目錄,這只會建立最後一級目錄,如果上級目錄不存在就拋異常。
mkdirs() 在指定位置建立目錄,這會建立路徑中所有不存在的目錄。
renameto(file dest) 重新命名檔案或資料夾,也可以操作非空的資料夾,檔案不同時相當於檔案的剪下,剪下時候不能操作非空的資料夾。移動/重新命名成功則返回true,失敗則返回false。
public
class demo3
}
刪除:
delete() 刪除檔案或乙個空資料夾,如果是資料夾且不為空,則不能刪除,成功返回true,失敗返回false。
deleteonexit() 在虛擬機器終止時,請求刪除此抽象路徑名表示的檔案或目錄,保證程式異常時建立的臨時檔案也可以被刪除
判斷:
exists() 檔案或資料夾是否存在。
isfile() 是否是乙個檔案,如果不存在,則始終為false。
isdirectory() 是否是乙個目錄,如果不存在,則始終為false。
ishidden() 是否是乙個隱藏的檔案或是否是隱藏的目錄。
isabsolute() 測試此抽象路徑名是否為絕對路徑名。
public
class demo4
}
getname() 獲取檔案或資料夾的名稱,不包含上級路徑。
getpath() 返回絕對路徑,可以是相對路徑,但是目錄要指定
getabsolutepath() 獲取檔案的絕對路徑,與檔案是否存在沒關係
length() 獲取檔案的大小(位元組數),如果檔案不存在則返回0l,如果是資料夾也返回0l。
getparent() 返回此抽象路徑名父目錄的路徑名字串;如果此路徑名沒有指定父目錄,則返回null。
lastmodified() 獲取最後一次被修改的時間。
public
class demo5
}
資料夾相關:
staic file listroots() 列出所有的根目錄(window中就是所有系統的碟符)
list() 返回目錄下的檔案或者目錄名,包含隱藏檔案。對於檔案這樣操作會返回null。
listfiles() 返回目錄下的檔案或者目錄物件(file類例項),包含隱藏檔案。對於檔案這樣操作會返回null。
list(filenamefilter filter) 返回指定當前目錄中符合過濾條件的子檔案或子目錄。對於檔案這樣操作會返回null。
listfiles(filenamefilter filter) 返回指定當前目錄中符合過濾條件的子檔案或子目錄。對於檔案這樣操作會返回null。
public
class demo6 */
file file = new file("f:\\1208\\day17");
/*string filenames = file.list(); //把 當前資料夾下面的所有子檔名與子資料夾名 儲存到乙個string型別 的陣列中 返回。
for(string filename : filenames)*/
file files = file.listfiles(); // 把 當前資料夾下面的所有子檔案與子資料夾都使用了乙個file物件描述,然後把這些file物件儲存到乙個file陣列中返回
for(file fileitem : files)
}}
判斷file空 IO流(二) File類
file類的建構函式 通過將給定路徑名字串轉換為抽象路徑名來建立乙個新 file 例項。引數 string pathname 字串的路徑名稱 路徑可以是以檔案結尾,也可以是以資料夾結尾 路徑可以是相對路徑,也可以是絕對路徑 路徑可以是存在,也可以是不存在 建立file物件,只是把字串路徑封裝為fil...
File類 遞迴 IO流入門
提供用於建立 複製 刪除 移動和開啟單一檔案的靜態方法,並協助建立 filestream 物件 一 file物件的建立方式file string pathname 通過路徑名字來建立新的file例項 file string parent,string child 通過父路徑和子路徑建立file例項 ...
IO流 File類的使用
1 file類的乙個物件,代表乙個檔案或者資料夾 2 file類宣告在io包下 3 file類涉及到檔案的建立 刪除 重新命名 修改時間 檔案大小等方式 並未涉及到資料的寫入與讀取等操作,如果需要讀取或者寫入資料,必須使用io流來完成 4 後續file類的物件常常被當做引數傳遞到流的構造器中,指明讀...