通過流實現檔案讀寫的方法(上)

2021-07-31 20:38:16 字數 2654 閱讀 7818

把不同的輸入/輸出源(鍵盤、硬碟、網路連線等)抽象描述為「流」(

stream

)。通過流的方式允許程式使用相同的方法來訪問不同的輸入

/輸入源。

io流即為輸入輸出流,它可以方便的實現資料的輸入輸出操作。

按照流的流向來分,可以分為輸入流和輸出流。輸入流指的是只能從中讀取資料,而不能向其中寫入輸入;輸出流只能向其中寫入資料,而不能從中讀取資料。

比如從記憶體與硬碟之間的資料交換,輸入和輸出都是從記憶體的角度出發的,如圖1所示。

圖1 輸入流與輸出流示意圖

按照流中處理的資料單元大小,可以分為位元組流和字元流。位元組流和字元流的用法基本相同,區別在於位元組流和字元流所操作的資料單元不同,位元組流操作的資料單元是8位的位元組,而字元流操作的資料單元是

16位的字元。

位元組流主要由inputstream和

outputstream

作為基類,而字元流則主要由

reader

和writer

作為基類。

可以通過如下三種方式對檔案中的資料進行讀取和寫入:位元組流方式、字元流方式以及緩衝區方式。

在「1.2.2

」中提到,位元組流主要由

inputstream

和outputstream

作為基類。我們將使用這兩個類的派生類

fileinputstream

和fileoutputstream

實現檔案資料的讀寫。

使用fileoutputstream類實現檔案資料的寫入,該類的基類是

outputstream

。fileoutputstream

類叫做檔案輸入流類,該類主要用於檔案資料的寫入。

2.1.1.1 建立檔案流

首先定義要寫入檔案的絕對路徑:

privatestring filepath = "/storage/sd_external/1.txt";

其中,「/storage/sd_external/

」表示安卓系統的外部儲存裝置,即

sd卡。

接下來通過fileoutputstream類的建構函式實現該類物件的建立。

可以使用兩種方式來建立fileoutputstream類的物件,一種是直接通過檔案的絕對路徑實現,另外一種是通過

file

類實現。

fileoutputstream fos = new fileoutputstream(filepath);或者

file file = new file(filepath);

fileoutputstream fos = new fileoutputstream(file);

2.1.1.2 寫入檔案流

通過fileoutputstream類的

write()

方法將資料寫入到檔案流中。

fos.write(content.getbytes());

其中,content是要寫入檔案的資料,該變數的型別時

string

型別。在「

1.2.2

」中提到,

fileoutputstream

類是位元組類,即

write()

方法引數的型別應該是

byte

,因此需要通過

getbytes()

方法將string

轉換為byte。

2.1.1.3 關閉檔案流

在程式中如果不再使用檔案流,需要呼叫fileoutputstream類的

close()

方法來關閉檔案流,並釋放與此流有關的所有系統資源。

fos.close()。

需要注意的是,由於位元組流和字元流類的方法都會丟擲異常,因此需要在try-catch語句中使用這些類。

使用fileinputstream類實現檔案資料的讀取,該類的基類是

inputstream

。fileinputstream

類叫做檔案輸入流類,該類主要用於檔案資料的讀取。

2.1.2.1 建立檔案流

建立檔案輸入流的方法與在「2.1.1.1

」中介紹的建立檔案輸出流的方法類似。可以使用檔案的絕對路徑進行直接建立

fileinputstream fis =newfileinputstream(filepath);

也可以通過file類建立

file file = new file(filepath);

fileinputstream fis =newfileinputstream(file);

2.1.2.2 讀取檔案流

通過fileinputstream類的

read()

方法讀取檔案流。

fis.read(content);

其中,content的型別是

byte

,讀取到的資料都儲存在該變數中。

2.1.2.3 關閉檔案流

通過fileinputstream類的

close()

方法關閉檔案資料流。

fis.close();

利用檔案流實現檔案讀寫

儲存在磁碟上的檔案中的資料被定義為檔案流。檔案流不但包括了檔案的真實資料還包含了檔案目錄 檔案系統元資料 訪問控制列表以及這個檔案的擴充套件屬性等。在c語言中,用 file 結構來表示檔案流。通過 fopen fread fwrite 以及fprintf 等函式對檔案流操作實現檔案的讀寫。通過fop...

C 檔案流 掌握文字檔案讀寫的方法

掌握文字檔案讀寫的方法 了解二進位制檔案的讀寫方法 c 檔案流 fstream 檔案流 ifstream 輸入檔案流 ofstream 輸出檔案流 建立乙個文字檔案並寫入資訊 同向螢幕上輸出資訊一樣將資訊輸出至檔案 include include void main 執行後開啟檔案d me.txt,...

java中通過IO流實現檔案的複製

一 通過節點流 inputstream outputstream 實現檔案的複製 param pathto 要儲存複製內容的新檔案路徑,包含檔名及其字尾 param pathfrom 要複製的原始檔路徑,包含檔名及其字尾 author beauxie static void copyfile str...