outputstream此抽象類,是表示輸出位元組流的所有類的超類。操作的資料都是位元組,定義了輸出位元組流的基本共性功能法方法。
fileoutputstream類
outputstream有很多子類,其中fileoutputstream可用來寫入資料到檔案中。
fileoutputstream類是檔案輸出流,是用於將資料寫入file的輸出流。
使用fileoutputstream寫資料到檔案中
**演示
public
class
fileoutputstreamdemo
}
執行結果
會發現我們的d盤內多了「file.txt」檔案,且檔案內有我們寫入的內容「abcde」.
給檔案續寫和換行
如果我們直接 new fileoutputstream(file) 這樣建立物件寫入資料的話,會覆蓋掉原有的檔案,那我們想要在原有的檔案中續寫內容該怎麼辦呢?
查閱api我們會發現
當第二個引數為true時,使用該流寫出的資料會追加到檔案末尾
如果想給檔案中續寫資料和換行,我們可以這樣寫
public
class
fileoutputstreamdemo_2
}
開啟我們剛才的檔案,我們會發現檔案中的內容變成如下圖所示:
說完輸出流,我們來看輸入流
前面我們了解到了如何將記憶體中的資料寫到檔案中,那麼如何將檔案中的資料讀到記憶體中呢,我們可以通過inputstream來實現,此類是表示位元組輸入流的所有類的超類,定義了位元組輸入流的基本共效能方法。
fileinputstream類
inputstream有很多子類,其中fileinputstream可用來讀取檔案中的內容。
fileinputstream類讀取資料read方法
從檔案中讀取資料**如下所示:
public
class
fileinputstreamdemo
fis.
close();}}
這是我們剛才寫入檔案的內容
讀取資料read(byte)方法
在讀取檔案中的內容時呼叫read() 方法,每次只能讀取乙個,太麻煩了,也是我們可以定義乙個陣列作為臨時的儲存容器,一次可以讀取多個字元。
**如下:
public
class
fileoutputstream_2
fis.
close();}}
讀取乙個已有的資料,並且將這些資料寫入到另外乙個檔案中。
public
class
copyfiletest
//4,關閉資源。
fos.
close()
; fis.
close()
;}
檢查檔案發現file.txt 的內容被copyfile.txt輔助
上述複製檔案有個問題,每次都從原始檔讀取乙個,然後在寫到指定檔案,接著再讀取乙個字元,然後再寫乙個,一直這樣下去。效率極低。
緩衝陣列方式複製檔案
示範**如下:
public
class
copyfilebybuffertest
// 關閉資源。
fos.
close()
; fis.
close();}}
在剛才的程式執行過程中,我們會發現出現了異常,那麼我們在實際開發中是怎麼處理異常呢,請看我們下面的**演示:
public
class
fileoutputstreamdemo3
catch
(ioexception e)
finally
catch
(ioexception e)}}
}}
java基礎之位元組流 IO流
一 io流 輸入流 輸出流 位元組流 字元流 1 inputstream 2 outputstream 二 eof end 讀到 1就讀到結尾 三 輸入流基本方法 int b in.read 讀取乙個位元組無符號填充到int低八位.1是eof in.read byte buf in.read byt...
IO流之位元組流
io流分為位元組流和字元流,今天來寫一下其中的位元組流。位元組流的基類分別為inputstream和outputstream,他們的子類都是由他們兩個派生出來的,也是以他們為字尾結尾的,如 inputstream的子類fileinputstream。1 fileinputstream 構造方法 fi...
java之IO流 位元組流和字元流
file類是對檔案操作的類。在windows和非windows系統,目錄分隔符是不同的 windows 採用 非windows 採用 絕對路徑 從磁碟的根目錄開始,一級一級直到找到這個檔案 c users admin desktop abc.txt 相對路徑 以某乙個檔案作為參照,相對於這個檔案的路...