黑馬程式設計師 16 IO流

2021-06-20 09:16:48 字數 3855 閱讀 7744

---------------------- 

asp.net+android+ios開發

、.net培訓

、期待與您交流! ----------------------

io流中的運算元據分為位元組流和字元流

早期都是以位元組流的形式操作的,位元組流處理單元是乙個位元組,操作

byte

或byte

,可以操作任何形式的資料

字元流:由於對於文字資料,有不同的碼表編碼格式,字元流採用預設編碼表,處理單元是兩個位元組的

unicode

字元,操作

char

、char

、或string

對於文字資料用字元流更有效率,對於多**資料用位元組流更好

io流4個基本功能類,其實現類都是以基類名為字尾,以功能為字首

流操作的基本規律:

1:明確源和目的

源:輸入流 inputstreamreader

目的:輸出流 outputstream writer

2:操作的資料是否是純文字

3:當體系明確後再明確要使用哪個具體物件,通過裝置進行區分

源裝置:記憶體,硬碟,鍵盤

目的裝置:記憶體,硬碟,控制台

io流的異常,

io流體系物件,從建立時就會發生異常,因為凡是涉及系統操作的都會出現異常,有建立就必須有關閉。

處理方式:在外面建立引用,在try內初始化。關閉的動作在finally中try處理,流物件關閉前要判斷是否為空,只能每個都判斷一次

字元流:

bufferedwriter和bufferedreader

緩衝區的出現提高流的操作效率,建立緩衝前必須先有流物件

newline():跨平台換行符方法,只在緩衝區有效

readline():一次讀取文字的一行,方便資料的獲取,當返回null時,表示讀到檔案末尾,不返回換行符

其實最終都是在硬碟上乙個乙個讀取,,最終使用的還是read()一次讀取乙個的方法,只是被封裝了起來

read(),阻塞式方法,當沒有資料讀取時等待,並不釋放

inputstreamreader和outputstream

,轉換流,將位元組流資料轉換成字元流,,和將字元流通向位元組流,錄入字元,轉出位元組

字元流與位元組流之間的橋梁,方便了字元流與位元組流之間的操作

裝飾設計模式:

當想要對已有物件進行功能增強時,就可以定義類,將已有物件傳入,基於已有物件的功能,並提供加強功能,那麼這個類就稱為裝飾類

裝飾類通常會通過構造方法接收裝飾的物件,並基於被裝飾的物件的功能提供更強的功能,裝飾模式比繼承要靈活,避免繼承體系的臃腫,降低了類和類之間的關係,所以裝飾類和被裝飾類通常都屬於乙個體系中

file類:

用來將檔案或者資料夾封裝成物件,方便對檔案與資料夾的屬性資訊進行操作。

file物件可以作為引數傳遞給流的建構函式。

特點:實現了

comparable

介面,自身具備比較性,具有自然順序。

file

物件可以作為引數傳遞給流的建構函式,建立

file

物件時,可以將已有的或未出現的檔案或資料夾封裝成物件,不會建立檔案或目錄,但當作為引數傳遞給輸出流時,會以輸出流建立檔案的方式建立,存在覆蓋。

|---初始化:三種方式:

1:在當前目錄下關聯指定檔案

file f1 = new file(「a.txt」) 2:

關聯指定目錄,指定檔案

file f2 = new file(「d:\\abc」, 「b.txt」) 3:

關聯指定目錄,在指定目錄下關聯指定檔案

file d = new file(「d:\\abc」);

file f3 = new file(d, 「c.txt」);

功能:建立、刪除、判斷、獲取資訊

建立:

boolean createnewfile():在指定的位置建立檔案,如果該檔案存在,則不建立,返回false

mkdir()建立資料夾

mkdirs()建立多級資料夾

刪除:

boolean delete()刪除失敗返回false,如果檔案正在被使用,則刪除不了。

void deleteonexit()在程式退出時刪除指定檔案,一定會刪除。

判斷:

boolean exists()判斷檔案是否存在。

如果為true,即可應用以下方法

isfile()是否為檔案

isdirectory()是否為目錄

ishadden()是否為隱藏檔案

isabsolute()是否為絕對路徑。

-獲取資訊:

getname獲取名稱

getpath獲取路徑

getabsolute獲得絕對路徑,可以返回字串或file物件

getparent:返回絕對路徑的父目錄,如果獲取的是相對路徑,返回null,如果相對路徑中有上一級目錄,那麼這個目錄就是返回父目錄

特殊方法:

renameto(file f):重新命名,可以指定目錄,相當與剪下

+重新命名

file listroots():靜態方法,列出當前計算機下有效的碟符。返回乙個

file陣列.

string list() :列出當前目錄下所有的目錄和檔名稱,返回乙個

string

陣列,呼叫此方法的

file

必須封裝了乙個目錄,且該目錄必須存在,

string list(filenamefilter filter):返回乙個字串陣列,這些字串指定此抽象路徑名表示的目錄滿足指定過濾器的檔案和目錄。

file listfiles():返回乙個抽象路徑名陣列,這些路徑名表示此抽象路徑名表示的目錄的檔案。

---------------------- 

asp.net+android+ios開發

、.net培訓

、期待與您交流! ----------------------

黑馬程式設計師 IO流

asp.net unity開發 net培訓 期待與您交流!io流可以按流向分為輸入流,輸出流。按讀取資料的型別可分為位元組流和字元流。字元流 輸出字元流 writer 字元寫入流的抽象 filewriter 字元寫入流 bufferedwriter 字元寫入流緩衝區 outputstreamwrit...

黑馬程式設計師 IO 流操作規律

asp.net unity開發 net培訓 期待與您交流!流操作基本規律 一 兩個明確 1 明確源和目的 源 輸入流。inputstream位元組流 reader 字元流 目的 輸出流 outputstream 位元組流 writer 字元流 2 操作的資料是否是純文字 是,即字元流 如果裝置是鍵盤...

黑馬程式設計師 檔案流IO操作

asp.net unity開發.net培訓 期待與您交流!一 介紹與檔案相關的列舉 fileaccess 表示檔案的訪問許可權,列舉取值包括read 可讀 write 可寫 和readwrite 可讀寫 fileattibutes 表示檔案的型別屬性,列舉取值主要包括 archive 存檔檔案 di...