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