java基礎 IO 第四天

2021-08-20 20:25:43 字數 2605 閱讀 9566

第4天

io流今日內容介紹

u 位元組流

u 字元流

outputstream此抽象類,是表示輸出位元組流的所有類的超類。操作的資料都是位元組,定義了輸出位元組流的基本共性功能方法。

輸出流中定義都是寫write方法,如下圖

outputstream有很多子類,其中子類

fileoutputstream

可用來寫入資料到檔案。

fileoutputstream類,即檔案輸出流,是用於將資料寫入 file的輸出流。

l 構造方法

l 將資料寫到檔案中,**演示:

publicclassfileoutputstreamdemo

}我們直接newfileoutputstream(file)這樣建立物件,寫入資料,會覆蓋原有的檔案,那麼我們想在原有的檔案中續寫內容怎麼辦呢?

繼續查閱fileoutputstream的api。發現在fileoutputstream的建構函式中,可以接受乙個boolean型別的值,如果值

true

,就會在檔案末位繼續新增。

l 構造方法

l 給檔案中續寫資料和換行,**演示:

publicclassfileoutputstreamdemo2

}在前面編寫**中都發生了io的異常。我們在實際開發中,對異常時如何處理的,我們來演示一下。

publicclassfileoutputstreamdemo3catch(ioexception e)finallycatch(ioexception e) }}

}}通過前面的學習,我們可以把記憶體中的資料寫出到檔案中,那如何想把記憶體中的資料讀到記憶體中,我們通過inputstream可以實現。

inputstream

此抽象類,是表示位元組輸入流的所有類的超類。,定義了位元組輸入流的基本共性功能方法。

l int read():讀取乙個位元組並返回,沒有位元組返回-1.

l int read(byte): 讀取一定量的位元組數,並儲存到位元組陣列中,返回讀取到的位元組數。

inputstream有很多子類,其中子類

fileinputstream

可用來讀取檔案內容。

fileinputstream 從檔案系統中的某個檔案中獲得輸入位元組。

l 構造方法

在讀取檔案中的資料時,呼叫read方法,實現從檔案中讀取資料

l 從檔案中讀取資料,**演示:

publicclassfileinputstreamdemo intln(

"ch="

+(char)ch);

// 關閉資源。

fis.close();}}

在讀取檔案中的資料時,呼叫read方法,每次只能讀取乙個,太麻煩了,於是我們可以定義陣列作為臨時的儲存容器,這時可以呼叫過載的

read

方法,一次可以讀取多個字元。

publicclassfileinputstreamdemo2

fis.close();}}

既然會了檔案的讀和寫操作了,那麼我們就要在這個基礎上進行更為複雜的操作。使用讀寫操作完成檔案的複製。

原理;讀取乙個已有的資料,並將這些讀到的資料寫入到另乙個檔案中。

publicclasscopyfiletest

//4,關閉資源。

fos.close();

fis.close();}}

上述**輸入流和輸出流之間是通過ch這個變數進行資料交換的。

上述複製檔案有個問題,每次都從原始檔讀取乙個,然後在寫到指定檔案,接著再讀取乙個字元,然後再寫乙個,一直這樣下去。效率極低。

上述**複製檔案效率太低了,並且頻繁的從檔案讀資料,和寫資料,能不能一次多把檔案中多個資料都讀進內容中,然後在一次寫出去,這樣的速度一定會比前面**速度快。

publicclasscopyfilebybuffertest

// 關閉資源。

fos.close();

fis.close();}}

Java基礎學習第四天

第四天 遇到問題解決思路 1.將複雜問題分解為若干個簡單問題 2.實現,如果有bug,進行debug除錯 3.優化 氣泡排序 比較相鄰的元素。如果第乙個比第二個大,就交換它們兩個。對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。針對所有的元素重複以上...

Java總結第四天

1 方法是一段可重複呼叫的 段 定義格式 訪問修飾符 返回值型別 方法名 引數 2 方法的過載 方法名稱相同,但是引數的型別的個數不同,通過傳遞引數的個數和型別不同來完成不同的功能 3 理解物件導向 程式的發展過程 面向過程 物件導向 面向過程 不去做什麼樣的盒子,隨機取工具製作 物件導向 先想好乙...

java學習第四天

public class array2str string str int2str arr system.out.println str str int num 3 string str2 getweek num system.out.println num system.out.println s...