Java基礎之 IO流(位元組流)

2021-09-11 04:08:25 字數 2776 閱讀 2897

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 相對路徑 以某乙個檔案作為參照,相對於這個檔案的路...