1、IO流的操作步驟
step1:確定數(shù)據(jù)從哪到哪。文件信息。
step2:創(chuàng)建流:
流向:輸入,輸出
單位:字節(jié),字符
子類(lèi)流:文件,內(nèi)存。。。。
step3:操作流
讀取數(shù)據(jù):輸入
read()
寫(xiě)出數(shù)據(jù):輸出
write()
step4:關(guān)閉流
close()

2、FileInputStream
用于以字節(jié)為單位,讀取文件中的數(shù)據(jù),到程序中。
1、構(gòu)造方法:
? ? FileInputStream(String name)
????????通過(guò)打開(kāi)與實(shí)際文件的連接來(lái)創(chuàng)建一個(gè) FileInputStream ,該文件由文件系統(tǒng)中的路徑名 name命名。
????FileInputStream(File file)
????????通過(guò)打開(kāi)與實(shí)際文件的連接創(chuàng)建一個(gè) FileInputStream ,該文件由文件系統(tǒng)中的 File對(duì)象 file命名。
????read()-->int
????????每次讀取一個(gè)字節(jié)。返回值就是讀入的數(shù)據(jù)本身。如果讀到文件的末尾了,-1。
????read(byte[] bs)-->int
????????每次讀取多個(gè)字節(jié),最多是bs數(shù)組的長(zhǎng)度個(gè)。返回值是本次讀取的實(shí)際的字節(jié)個(gè)數(shù)。如果到達(dá)末尾,-1.
????int read(byte[] bs, int off, int len)
從該輸入流讀取最多 len字節(jié)的數(shù)據(jù)為字節(jié)數(shù)組 。第一個(gè)參數(shù)表示要存儲(chǔ)本地讀取的數(shù)據(jù)的數(shù)組,第二個(gè)參數(shù),表示從哪個(gè)下標(biāo)開(kāi)始存儲(chǔ),第三個(gè)參數(shù)是表示本次讀取預(yù)計(jì)的讀取數(shù)量。該方法的返回值是本次讀取的實(shí)際數(shù)量。如果到達(dá)文件末尾,-1。
byte[] bs = new byte[3];//內(nèi)存資源
?
數(shù)據(jù)源:250個(gè)字節(jié)
數(shù)組:100個(gè)長(zhǎng)度
1次:100,剩150 讀取100個(gè)
2次:100,剩50 讀取100個(gè)
3次:50,讀完了 讀取50個(gè)
int read(byte[] bs) -->讀多個(gè),最多數(shù)組長(zhǎng)度,實(shí)際看返回值,數(shù)據(jù)在數(shù)組中,將讀取到的數(shù)據(jù)存入到數(shù)組中,默認(rèn)從頭開(kāi)始存儲(chǔ)。
?
在操作IO流讀取本地文件的數(shù)據(jù),提升效率。
硬盤(pán)和內(nèi)存
read()-->每次讀取一個(gè)數(shù)據(jù),
read(byte[] bs)--> 1000
每次讀取一個(gè)字節(jié):

使用字節(jié)數(shù)組作為緩沖區(qū),讀取數(shù)據(jù):

3、FileOutputStream
構(gòu)造方法:
FileOutputStream(String name) ,在文件開(kāi)頭寫(xiě),擦除寫(xiě)
創(chuàng)建文件輸出流以指定的名稱(chēng)寫(xiě)入文件。
FileOutputStream(String name, boolean append) ,在文件的末尾寫(xiě)數(shù)據(jù),追加
創(chuàng)建文件輸出流以指定的名稱(chēng)寫(xiě)入文件。
?
FileOutputStream(File file) ,在文件開(kāi)頭寫(xiě),擦除寫(xiě)
創(chuàng)建文件輸出流以寫(xiě)入由指定的 File對(duì)象表示的文件。
FileOutputStream(File file, boolean append) ,在文件的末尾寫(xiě)數(shù)據(jù),追加
創(chuàng)建文件輸出流以寫(xiě)入由指定的 File對(duì)象表示的文件。
寫(xiě)出去的數(shù)據(jù),是清空寫(xiě)。將文件中原來(lái)的數(shù)據(jù)全部擦除,從頭開(kāi)始寫(xiě)數(shù)據(jù)。
void write(int data),將參數(shù),這個(gè)字節(jié)數(shù)據(jù)寫(xiě)出去
void write(byte[] b),將 b.length個(gè)字節(jié)從指定的字節(jié)數(shù)組寫(xiě)入此文件輸出流。
void write(byte[] b, int off, int len) ,將 len字節(jié)從位于偏移量 off的指定字節(jié)數(shù)組寫(xiě)入此文件輸出流。 ?
String--->byte[]
String--->char[]
