io字元流
reader(源)
bufferedreader
linenumberreader
inputstreamreader
filereader(位元組流通向字元流的橋梁)
stringreader
writer(目的)
bufferedwriter
outputstreamwriter
filewriter(字元流通向位元組流的橋梁)
stringwriter
printwriter
位元組流inputstream(源)
fileinputstream
sequenceinputstream
合併流bytearrayinputstream
在構造的時候,需要接收資料源,而且資料來源為位元組陣列;
outputstream(目的)
fileoutputstream
bytearrayoutputstream
內部定義了乙個可變長度的位元組陣列,它就是資料目的地;
在判斷檔案物件是否是檔案或者目錄時,必須要先判斷該檔案物件封裝的內容是否存在,通過exists判斷; 在文字檔案操作流構造的時候還可指定編碼方式;
file f;
f.exists();
f.isdirectory();
f.isfile();
f.deleteonexit();// 在程式退出的時候將指定檔案刪除;
f.createnewfile();// 在指定位置建立檔案,如果檔案已經存在,則返回false;
f.getparent();//此方法返回的是絕對路徑中的父目錄,如果獲取的是相對路徑,返回null,如果相對路徑中有上一層目錄則返回該目錄;
file.separator //檔案系統分割符,不同系統分割符不同;
filenamefilter://用於過濾檔名;
filenamefilter.accept(file dir,string name); //測試指定檔案是否包含在某一檔案列表中;
name:檔案的名稱;
public boolean accept(file dir, string name)
//緩衝區的出現是為了提高流的操作效率而出現的;在建立緩衝區之前,必須要有流物件;
//緩衝技術其實是在物件內部封閉了陣列,存完了之後一次性寫入;
constructor: 將流傳入buffer的建構函式;
notice:只要用到緩衝區,就得對緩衝區進行重新整理;
buffered... buf;
buf.flush();
buf.close();//關閉緩衝區就是關閉緩衝區中的流物件;
bufferedreader bufr;
bufr.readline();//返回一行,但不包含換行符;
// 無論讀取一行還是多個字元,其實最終都是在硬碟上乙個乙個的讀取,所以最終使用的方法還是read方法一次讀乙個
* bytearrayinputstream:在構造的時候,需要接收資料源,而且資料來源為位元組陣列;
* bytearrayoutputstream:在構造的時候,不用定義資料目的,因為內部定義了乙個可變長度的位元組陣列,它就是資料目的地;
* 兩個流物件都操作的是陣列,並沒有使用系統資源,不需要進行關閉的操作;
// 關閉流資源之前會重新整理一次內部緩衝區中的資料;
// flush();重新整理(將緩衝區中的資料存入檔案中)後,流繼續使用;
// 序列化:靜態的成員不能序列化;
// 如果不想讓非靜態成員被序列化,加修飾符:transient int,,,
system.in:inputstream
system.out:outputstream
IO詳解 常用io類
inputstream與reader 前者是位元組輸入流,讀取檔案內容,檔案需要先轉換成byte,才能讀取得到,如果是中文,可能會出現亂碼 後者是字元輸入流,可以讀取字串,特別是有中文的時候,可以使用此類,不會出現亂碼。outputstream 與writer 前者是位元組輸出流,資料儲存到文字中,...
常用類庫 IO操作
io操作 c 將檔案視為乙個位元組序列,以流的方式對檔案進行操作。流是位元組序列的抽象概念。檔案和流之間既有區別又有聯絡。檔案是在各種驅動器上 可移動磁碟 硬碟 cd 等 永久或臨時儲存的資料的有序集合,是進行資料讀寫操作的基本物件。檔案通常具有檔名 所在路徑 建立時間 訪問許可權等基本屬性。流非常...
IO的繼承結構
io的繼承結構 主流分類 1 按照方向進行分類 輸入輸出流 相對於程式而言,從程式寫資料到檔案中是輸出 2 按照傳輸型別進行分類 位元組流字元流 3 組合 位元組輸入流,位元組輸出流,字元輸入流,字元輸出流 2.學習方法 在抽象父類中學習通用的方法,在子類中學習如何建立物件 3.位元組輸入流 inp...