Java學習筆記之——IO
一. IO
IO讀寫
流分類:
按照方向:輸入流(讀),輸出流(寫)
按照資料單位:位元組流(傳輸時以位元組為單位),字元流(傳輸時以字元為單位)
按照功能:節點流,過濾流
四個抽象類:
InputStream:輸入位元組流
OutputStream:輸出位元組流
Reader:輸入字元流
Write:輸出字元流
1. 第一組流:檔案的讀寫流
FileInputStream VS FileReader
(1)位元組流
FileInputSream:位元組輸入流
常用方法:
int |
read() 從該輸入流讀取一個位元組的資料。 如果當前位置沒有則返回-1 |
int |
read(byte[] b) 從該輸入流讀取最多 b.length個位元組的資料為位元組陣列。 |
int |
read(byte[] b, int off, int len) off:開始讀的位置,len:讀的長度 從該輸入流讀取最多 len位元組的資料為位元組陣列。 |
void |
close() 關閉此檔案輸入流並釋放與流相關聯的任何系統資源。 |
作用:
以位元組為單位從檔案中把資料讀到程式中
使用步驟:
a.建立流物件
b.讀資料,read,重點
c.釋放資源,close()
注意:1.在檔案中,通常一個字母佔用1個位元組,一個漢子至少佔用2個位元組,具體根編碼有關。
2.從非記憶體中讀取資料要比從記憶體中讀取要慢很多,效率不高
可以一次讀取多個來提高效率
FileOutputStream:位元組輸出流
常用方法:
void |
將指定的位元組寫入此檔案輸出流。 |
void |
write(byte[] b, int off, int len) 將 len位元組從位於偏移量 off的指定位元組陣列寫入此檔案輸出流。 |
void |
write(byte[] b) 將 b.length個位元組從指定的位元組陣列寫入此檔案輸出流。 |
void |
close() 關閉此檔案輸出流並釋放與此流相關聯的任何系統資源。 |
作用:
以位元組為單位從程式中把資料寫入到檔案中
使用步驟:
a.建立流物件
b.寫資料,write
c.關閉
(2)字元流
FileReader:輸入字元流
FileWrite:輸出字元流
========================================================
(3)可讀可寫位元組流
RandomAccessFile
1. 緩衝流
2. 字元流(高階流)
(1)
(2)
4.物件流
序列化
反序列化
5.字元緩衝流
筆記做的不全,這位大神做的很全 https://www.cnblogs.com/caixiaohua/p/6737808.html