流的學習與總結

2022-05-30 22:18:11 字數 1292 閱讀 2513

1.檔案物件file:

//絕對路徑

file f1 = new file("d:/lolfolder");

//相對路徑,相對於工作目錄,如果在eclipse中,就是專案目錄

file f2 = new file("lol.exe");

//把f1作為父目錄建立檔案物件

file f3 = new file(f1, "lol.exe");

//在建立乙個空檔案前,都會建立父目錄,無論幾級父目錄為空

file.getparentfile().mkdirs();

file.createnewfile();

2.檔案輸入輸出流(fileinputstream和fileoutputstream)

將檔案轉化為位元組流,然後將資料以ascall碼值的方式讀取,返回-1時則讀取完畢

注意:關於位元組流讀取中文的問題,檔案的儲存編碼一般為utf-8,而在utf-8編碼中,除了中文以外,其他字元跟asscll碼值的表述方式相同,而在其中中文通常佔2-4個字元,

如果每次控制流讀取固定個位元組時(比如兩個位元組)部分中文會出現亂碼,

3.在讀取位元組流(byte流)時,可根據不同的編碼格式對其位元組流進行解析,但如果需保證兩個檔案讀取過程中不會出現亂碼現象,則需控制其讀入流和讀出流的編碼格式

計算機在儲存資料過程中都是通過補碼儲存資料的,比如-32用byte表示為

原碼為:11000100->補碼為:10111110

其-32的byte強轉為int時

原碼為:1000..0 01000100->補碼為111111..1 10111110

就這個意思,正數byte強轉為int會補全前24位為0

4.緩衝流的常見用法:

以介質是硬碟為例,位元組流和字元流的弊端:

在每一次讀寫的時候,都會訪問硬碟。 如果讀寫的頻率比較高的時候,其效能表現不佳。

為了解決以上弊端,採用快取流。

快取流在讀取的時候,會一次性讀較多的資料到快取中,以後每一次的讀取,都是在快取中訪問,直到快取中的資料讀取完畢,再到硬碟中讀取。

其中讀取和寫的緩衝流分別有bufferedreader和bufferedwriter

其中flush方法會將資料立即從緩衝區寫入硬碟,否則得等緩衝區滿才會寫入

5.特殊的包裝類流:資料流和物件流

資料流datainputstream和dataoutputstream,其可用於讀寫特定的資料,比如int,boolean,以及特定格式的字串

物件流objectinputstream和objectoutputstream用於讀取和寫取物件,其物件都必須實現序列化介面

學習與總結

私有構造方法的類,不可被繼承.1.靜態工廠方法取代構造方法,組合取代繼承.優點 有名稱,不用每次呼叫建立乙個物件,可以返回原型別的子型別,引數型別例項更簡潔 2.n個必選引數 多個可選構造引數存在的情況下 建議使用 構造器模式 一般情況使用重疊構造器模式,但是可選引數超過4個就比較繁瑣 重疊構造如下...

函式的學習與總結

函式的學習與總結 經過這半個月的學習,我對c 中的函式有了乙個初步的理解。在我的認識中,c 中的函式實際上就是一種針對某種問題的解決方案,本質上就是一種演算法。正如數學中一般,我們會為了解決某個問題寫出解析式,然後向解析式中帶值。在c 中,我們也需要為解決某個問題寫出演算法,然後向裡面帶引數。inc...

OpenCV 學習與總結

opencv 學習與總結 opencv,計算兩幅影象的單應矩陣 摘要 平面射影變換是關於其次3維向量的一種線性變換,可以使用乙個非奇異的 3 times 3 矩陣h表示,x hx 射影變換也叫做單應 homography 計算出兩幅影象之間的單應矩陣h,那麼應用這個關係可以將乙個檢視中的所有點變換到...