- 相關(guān)推薦
java的I/O流--個人總結(jié)(上)
怎么又回過頭來看I/O流操作呢?溫故知新嘛,況且以后我的研究方向都會涉及帶內(nèi)存和多線程的操作,I/O與這些太有關(guān)聯(lián)了!其實我寫這個的個人總結(jié)的初衷并不是這樣,是在學(xué)習(xí)Struts2的文件上傳和下載操作時遇到了一些小問題。一下是我的個人總結(jié):
java.io.包內(nèi)的類真是太多了,簡直是排山倒海!但是其中許多類都是裝飾類,采用的裝飾著模式。所以我們一定要熟悉各種類之間的層次結(jié)構(gòu)!
java.io.File類:這是對文件本身進行操作的構(gòu)造方法:public File(String pathname)
創(chuàng)建文件對象的方法:f對象.createNewFile()其返回值是一個boolean值
還有其他一些常用方法:f.delete(),f.mkdir().
其中全局常量pathSeparator的路徑分隔符,顯示了java的可移植性強大的特點
2.RandomAccessFile類對文件內(nèi)容進行操作的隨機讀取類
構(gòu)造方法:public RandomAcessFile(文件對象模式)會拋出異常
3.字節(jié)流
字節(jié)流有OutputStream和InPutStream,但是他們都是抽象類,必須通過子類開實例化對象,然后對byte數(shù)組進行操作。如實操作文件,可以使用其子類FileOutPutStream類,通過向上轉(zhuǎn)型,可以為OutPutStream實例化。
方法有:OutPutStream的對象.write(byte|b單個字節(jié))寫入到輸出流中去;InputStream的方法和OutPutStream是一樣的對象.read(|byte)將對象InputStream流中的數(shù)據(jù)讀進數(shù)組,或者返回一個int值是否讀完。要強調(diào)的是最后都要close()關(guān)閉字節(jié)流!
4.字符流
1個字符是2字節(jié)是2Byte其單位是大于字節(jié)流的字符輸出流Writer和字符輸入流Reader,他們的操作基本和字節(jié)流類似的
但是區(qū)別是:字節(jié)流操作不會使用到緩沖區(qū)(內(nèi)存),而字符流操作需要使用!
5.轉(zhuǎn)換流
OutputStreamWrite(Writer的子類):xxxx--字符流--字節(jié)流
InputStreamReader(Reader的子類):文件--字節(jié)流--字符流
6.內(nèi)存操作流
以上講解的程序中的輸出和輸入都是從文件中來的,當(dāng)然也可以將輸入的位置設(shè)置在內(nèi)存上
使用ByteArrayStreamInputStream,ByteArrayOutPutStream完成輸入輸出。和字節(jié)流字符流一樣,操作對象都可以看成是Stream流。
構(gòu)造方法ByteArrayInputStream(byte buf)只使用構(gòu)造方法將內(nèi)容讀取到內(nèi)存中去
構(gòu)造方法ByteArrayOutPutStream()創(chuàng)建對象,將內(nèi)容寫入bos流中:bos.write(int b)
bos.write(bis.read()):以bis讀出再寫入bos中。然后str=bos.toString 7.管道流
PipedOutputStream和PipeIntputStream使用時,還要使用Connect()方法將兩個流連接起來。
pos.connect(pis);
【java的I/O流--個人總結(jié)(上)】相關(guān)文章:
Module 5 Unit 1 I get up at seven o’clock.(教案)04-24
java實習(xí)總結(jié)01-01
Java實習(xí)總結(jié)05-27
java實訓(xùn)總結(jié)09-30
java實習(xí)心得總結(jié)05-19
java工作總結(jié)04-24
java試用期個人工作總結(jié)01-29
O的聯(lián)想作文08-09
a o e 教案04-25
學(xué)科術(shù)語 O05-04