第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...