1.1RandomAccessFile--使用RAF讀寫基本類型數據,以及瞭解Raf的指針操作 write有相對應的寫入基本類型的方法 void seek(Long pos)調整RAF指針位置,可以在寫入時隨時調整指針位置 raf.write(bs);寫入一個字元串數組getBytes("UTF-8 ...
1.1RandomAccessFile--使用RAF讀寫基本類型數據,以及瞭解Raf的指針操作
write有相對應的寫入基本類型的方法
void seek(Long pos)調整RAF指針位置,可以在寫入時隨時調整指針位置
raf.write(bs);寫入一個字元串數組getBytes("UTF-8")--將字元串按照UTF-8解析成字元數組
raf.read(date);讀取--參數為創建好的位元組數組後將位元組放在數組中返回參數為讀取到的長度
1.2java IO流;IO流是用來讀寫數據的Java標準操作
流分為兩個方向:
輸入流輸出流
輸入流,inputstream:用於從數據源讀取數據到程式中的流,負責讀取數據操作
輸出流,outputstream:用於從程式中將數據發送出去的流,負責寫出數據操作
流進行了兩個分類:
位元組流,處理流
位元組流:讀寫數據一定是建立在位元組流的基礎上的,是實際建立在數據源與程式間的“管道”,負責時間搬運數據
處理流:處理流不能獨立存在,故名思議,用來處理其他流的流,處理其他流的目的是通過處理流可以簡化對其處理流的讀寫操作(處理工作由處理流代勞)
文件流:文件流是一對低級流,文件輸入流用於讀取文件數據,文件輸出流用於向文件中寫入數據。
FileOutputStream支持兩組常用的構造方法
FileOutputStream(String path)
FileOutputStream(File file)
創建針對指定的文件的輸出流,預設是覆蓋模式,即:若指定的文件已經存在,會將該文件所有的數據清除,然後通過該流寫出的所有數據作為這個文件的數據保存
FileOutputStream(String path,boolean append)
FileOutputStream(File file,boolean append)
第二個參數為boolean值,若該值為true,則輸出流為追加模式,即:該文件原有數據保留,通過當前流寫出的所有數據會全部追加到文件的末尾。
文件輸入流,用於讀取文件中數據的流FileInputStream
緩衝流bufferedInputStrram緩衝位元組輸入流
bufferedOutputStrram緩衝位元組輸出流
緩衝流是一對高級流,功能是加快讀寫效率
緩衝流內部維護了一個位元組數組所以實際上緩衝流還是靠提高讀寫的數據量減少實際的讀寫次數提高讀寫效率,bis.read()方法在第一次讀取時實際讀取了一組位元組,並將第一個位元組返回,當再次調用該方法讀取一個位元組時會將第二個位元組直接返回。直到所有的位元組都返回過後才會再次實際獲取一組位元組回來
緩衝輸出流的緩衝區問題--flush();當需要強制將緩存中數據寫入到記憶體中,使用這個方法可以實現,在調用緩衝流的close方法的時候,在方法的內部也調用了這個方法
對象流java.io.ObjectOutputStream
對象流是一對高級流,可以方便我們讀寫Java中的任何對象(對象與位元組的轉換工作有對象流完成)對象輸出流,用於寫出java中的對象(想對應的對象的輸入流下次)
我是初學者,如有更新不好的,歡迎這位大神指出,謝謝大家!
更多精彩以後更新,轉載註明!