把不同的輸入/輸出源(鍵盤、硬碟、網路連線等)抽象描述為「流」(
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...