1. 程式人生 > 其它 >Java檔案讀寫

Java檔案讀寫

以下所有學習基於本圖:

Java檔案讀寫分兩類,位元組流和字元流。

兩者最大區別為緩衝區。

位元組流:不用緩衝區,直接操作文字。InputStream/OutputStream

字元流:字元在緩衝區形成,然後操作文字。 Reader/Writer

綜合對比詳解:Java的位元組流,字元流和緩衝流對比探究

接下來揀兩個見過的比較一下。

1.字元流

BufferedReader/Writer

有8192位元組緩衝區,讀入先放緩衝區,不夠從原始檔讀;寫的時候先放緩衝區,溢位了再一股腦往檔案裡寫。

適合一行一行讀。

InputStreamReader/OutputStreamWriter

將位元組流轉化為字元流,可以指定編碼格式,預設GBK。

由於檔案都是以位元組形式儲存的,所以經常BufferedReader套InputStreamReader,再套位元組流輸入輸出(怎麼又是套娃

 

2.位元組流

 FileInputStream/OutputStream

讀寫檔案的位元組流。呼叫輸入檔名,可以拋沒讀到的異常。常用API:read方法,可以讀一個位元組。Input詳解 Output詳解  

*FileReader=InputstreamReader+FileInputStream

FilterInputStream/OutputStream

BufferedInputStream/OutputStream

帶緩衝區的位元組流,效率通常高一點。

DataInputStream/OutputStream

用來讀寫各種各樣的資料型別,比如int、double、UTF等等。

ObjectInputStream/OutputStream

和序列化有關,用來讀取物件。

先這樣,後面具體用了再補充。