Java檔案讀寫
阿新 • • 發佈:2022-03-23
以下所有學習基於本圖:
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
和序列化有關,用來讀取物件。
先這樣,後面具體用了再補充。