第十九課 IO位元組流,字元流,物件輸入輸出流

2021-10-08 20:41:49 字數 2461 閱讀 9882

inputstream/outputstream:可以用來做檔案複製

包裝 -> 高階流: bufferedinputstream/bufferedoutputstream

buffered:緩衝/快取,可以提高效率

fileinputstream:

int read(): 讀單位元組, 並且存入int值中返回, 讀到檔案末尾, 返回-1

int read(byte bs): 讀檔案, 並且將讀出來的位元組存入到指定的陣列中,

最多一次讀出來bs.length個位元組,返回讀出來的位元組個數, 讀到檔案末尾, 返回-1

int read(byte bs, int offset, int length):從offset位置開始讀,共讀取length個位元組

fileoutputstream

void write(int): 寫單位元組, 指定int值得低八位

void write(byte): 將這個位元組陣列中所有的位元組一起寫入

void write(byte, int offset, int length)

擴充套件: 檔案加密 -> 原理, 將讀出來的位元組做了運算後寫入到新檔案中,一般 使用^符號

解密 -> 將加密過的檔案, 再讀出, 做乙個還原運算, 重新寫入

運算 -> 為了避免byte取值範圍溢位, 同時為了避免加密解密兩套**

下面展示一些讀和寫的**

@test

public

void

testwrite

() throws ioexception

@test

public

void

testread

() throws ioexception

}

inputstreamreader(inputstream in, string charsetname) - 指定字符集

inputstreamreader(inputstream in) - 預設字符集

int read() 讀乙個字元

int read(char cbuf) 將字元讀入陣列。

int read(char cbuf, int off, int len) 將字元讀入陣列的一部分。- 了解

注: 以上三個方法, 返回 -1 都標記著讀到檔案末尾

outputstreamwriter(outputstream out, string charsetname)

outputstreamwriter(outputstream out)

void write(char cbuf) 寫入乙個字元陣列

void write(char cbuf, int off, int len) 寫入字元陣列的一部分

void write(int c) 寫入單個字元

包裝字元流 -> 緩衝字元流

通常用來讀寫檔案內容

bufferedreader(reader)

string readline(): 讀取一整行, 返回null 標記讀到檔案末尾

printwriter

1.只能清空原檔案內容, 但是可以指定字符集,printwriter(string filename, string csn)

2.可以在原檔案上追加內容, 但是不可以指定字符集, 可以自動重新整理緩衝區,printwriter(outputstream out, boolean autoflush)

3.可以在原檔案上追加內容, 可以指定字符集, 可以自動重新整理緩衝區,printwriter(writer out, boolean autoflush)

void print(object): 寫出內容, 不加換行

void println(): 寫出內容, 並且換行

注意: 自動重新整理的功能, 只有println方法具有

print方法 必須手動重新整理

下面展示一些 字元流輸入輸出

public

class

testio

@test

public

void

reader1

() throws ioexception

}}

物件 -> 檔案[位元組] : 序列化

檔案[位元組] -> 物件 : 反序列化

objectinputstream(inputstream)

object readobject()

objectoutputstream(outputstream)

void writeobject(object)

serializable: 可序列化的

介面中沒有常量, 也沒有抽象方法, 空介面

序列化介面沒有方法或字段,僅用於標識可序列化的語義。

serialversionuid: 給類新增固定的序列版本號

transient: 修飾的變數, 在序列化的時候, 會被忽略掉

第十九課 物件的構造(下)

學習狄泰軟體學院唐老師c 課程心得,文章內容來自於唐老師課件 一 兩個特殊的建構函式 include class test int getj test const test t main 中test t2 t1時,如果類中只有test const test t 則報錯,需要加上 test main ...

IO 字元流 位元組流

io流 流按運算元據分為兩種 位元組流與字元流 流按流向分為 輸入流 輸出流 位元組流的抽象基類 inputstream outputstream 字元流的抽象基類 reader witer 這四個類派生出來的子類名稱都是以其父類名作為子類名的字尾。字元流 寫入流writer 用於操作檔案的writ...

IO 字元流 位元組流

直接和檔案互動,沒有快取區。所以即便沒有close 資料也已寫入檔案中。操作的是位元組 byte 可對任何檔案進行讀寫操作 private static void write throws ioexception private static void read throws ioexception...