一、io流的三種分類方式
1.按流的方向分為:輸入流和輸出流
2.按流的資料單位不同分為:位元組流和字元流
3.按流的功能不同分為:節點流和處理流
二、io流的四大抽象類:
字元流:reader writer
位元組流:inputstream(讀資料)
outputstream(寫資料)
三、inputstream的基本方法
int read() throws ioexception 讀取乙個位元組以整數形式返回,如果返回-1已到輸入流的末尾
void close() throws ioexception 關閉流釋放記憶體資源
long skip(long n) throws ioexception 跳過n個位元組不讀
四、outputstream的基本方法
void write(int b) throws ioexception 向輸出流寫入乙個位元組資料
void flush() throws ioexception 將輸出流中緩衝的資料全部寫出到目的地
五、writer的基本方法
void write(int c) throws ioexception 向輸出流寫入乙個字元資料
void write(string str) throws ioexception將乙個字串中的字元寫入到輸出流
void write(string str,int offset,int length)
將乙個字串從offset開始的length個字元寫入到輸出流
void flush() throws ioexception
將輸出流中緩衝的資料全部寫出到目的地
六、reader的基本方法
int read() throws ioexception 讀取乙個字元以整數形式返回,如果返回-1已到輸入流的末尾
常用的io流
位元組輸入流inputstream inputstream = new fileinputstream(resourcefile);
位元組輸出流 outputstream outputstream = new fileoutputstream(targetfile)
字元輸入流inputstreamreader inputstream =
new inputstreamreader(new fileinputstream(resourcefile))
字元輸出流 outputstreamwriter outputstream =
new outputstreamwriter(new fileoutputstream(targetfile))
這次加上位元組緩衝流
資料輸入流 datainputstream inputstream =new datainputstream(
new bufferedinputstream(new fileinputstream(resourcefile)));
資料輸出流 dataoutputstreamoutputstream =new dataoutputstream(
new bufferedoutputstream(new fileoutputstream(targetfile)))
物件輸入流 objectinputstream inputstream = new objectinputstream(
new bufferedinputstream(new fileinputstream(resourcefile)))
物件輸出流 objectoutputstream outputstream = new objectoutputstream(
new bufferedioutputstream(new fileoutputstream(targetfile)))
//此建構函式等於已可以往乙個位元組陣列裡輸入內容 (就是將位元組流放入記憶體中)
bytearrayoutputstream bos = new bytearrayoutputstream ()
類似於 byte buf = new byte[1024] 以便於寫入內容
//此建構函式等於將剛才放入記憶體中的資料讀取出來
bytearrayinputstream bis=new bytearrayinputstream(bos.tobytearray())
類似於 上面的buf在寫入位元組後,放入該位元組流中 以便於讀取內容
常用的場景是將以上物件放入 資料流中與物件流中 例如:
資料輸入流 datainputstream inputstream =new datainputstream(bis);
資料輸出流 dataoutputstreamoutputstream =new dataoutputstream(bos )
物件輸入流 objectinputstream inputstream = new objectinputstream(bis)
物件輸出流 objectoutputstream outputstream = new objectoutputstream(bos )
常用領域
在資料的傳輸中應用的比較多 例如socket伺服器與客戶端的資料互動
還有就是 inputstream 是所有輸入流的父介面
outputstream是所有輸出流的父介面
至於file物件就沒什麼可以說的了 該物件可以是乙個資料夾 也可以是乙個具體的檔案 通過isfile()方法判斷
可以獲取檔案的名字,路徑 等等資訊
JAVA IO流學習筆記(基礎)
基礎知識 1 字元流 2 位元組流 inputstream 讀取 與字元流的思路一樣 轉換 從檔案 文字 inputstreamreader 位元組到字元的橋梁 從文字 檔案 outputstreamwriter 字元到位元組的橋梁 例如 把乙個檔案存到另外乙個儲存空間上。技巧 1 各種io流下的子...
Java IO 學習筆記(緩衝流)
緩衝流 類 bufferedinputstream 和 bufferedoutputstream 實現了帶緩衝的過濾流,它提供了緩衝機制,把任意的 i o 流 到緩衝流上,可以提高 i o 流的讀取效率。在初始化時,除了要指定所連線的 i o 流之外,還可以指定緩衝區的大小。預設時是用32位元組大小...
Java IO流 隨機流2
本文 本文主要介紹隨機流的斷點續傳的具體使用 斷點續傳原理 首先把隨機訪問的檔案物件看作儲存在檔案系統中的乙個大型 byte 陣列,然後通過指向該 byte 陣列的游標或索引 即 檔案指標 filepointer 在該陣列任意位置讀取或寫入任意資料 相關方法說明 1 物件宣告 randomacces...