資源描述:
《java中io系統(tǒng)詳解》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、java中的io系統(tǒng)詳解java中的io系統(tǒng)詳解相關(guān)讀書筆記、心得文章列表Java流在處理上分為字符流和字節(jié)流。字符流處理的單元為2個(gè)字節(jié)的Unicode字符,分別操作字符、字符數(shù)組或字符串,而字節(jié)流處理單元為1個(gè)字節(jié),操作字節(jié)和字節(jié)數(shù)組。Java內(nèi)用Unicode編碼存儲字符,字符流處理類負(fù)責(zé)將外部的其他編碼的字符流和java內(nèi)Unicode字符流之間的轉(zhuǎn)換。而類InputStreamReader和OutputStreamWriter處理字符流和字節(jié)流的轉(zhuǎn)換。字符流(一次可以處理一個(gè)緩沖區(qū))一次操作比字節(jié)流(一次
2、一個(gè)字節(jié))效率高。(一)以字節(jié)為導(dǎo)向的stream------InputStream/OutputStreamInputStream和OutputStream是兩個(gè)abstact類,對于字節(jié)為導(dǎo)向的stream都擴(kuò)展這兩個(gè)雞肋(基類^_^);1、InputStream1.1ByteArrayInputStream--把內(nèi)存中的一個(gè)緩沖區(qū)作為InputStream使用.construct---(A)ByteArrayInputStream(byte[])創(chuàng)建一個(gè)新字節(jié)數(shù)組輸入流(ByteArrayInputStrea
3、m),它從指定字節(jié)數(shù)組中讀取數(shù)據(jù)(使用byte作為其緩沖區(qū)數(shù)組)(B)---ByteArrayInputStream(byte[],int,int)創(chuàng)建一個(gè)新字節(jié)數(shù)組輸入流,它從指定字節(jié)數(shù)組中讀取數(shù)據(jù)。---mark::該字節(jié)數(shù)組未被復(fù)制。1.2StringBufferInputStream--把一個(gè)String對象作為InputStream.construct---StringBufferInputStream(String)據(jù)指定串創(chuàng)建一個(gè)讀取數(shù)據(jù)的輸入流串。注釋:不推薦使用StringBufferInputS
4、tream方法。此類不能將字符正確的轉(zhuǎn)換為字節(jié)。同JDK1.1版中的類似,從一個(gè)串創(chuàng)建一個(gè)流的最佳方法是采用StringReader類。1.3FileInputStream--把一個(gè)文件作為InputStream,實(shí)現(xiàn)對文件的讀取操作construct---(A)FileInputStream(Filename)創(chuàng)建一個(gè)輸入文件流,從指定的File對象讀取數(shù)據(jù)。(B)FileInputStream(FileDescriptor)創(chuàng)建一個(gè)輸入文件流,從指定的文件描述器讀取數(shù)據(jù)。(C)-FileInputStream(
5、Stringname)創(chuàng)建一個(gè)輸入文件流,從指定名稱的文件讀取數(shù)據(jù)。method----read()從當(dāng)前輸入流中讀取一字節(jié)數(shù)據(jù)。read(byte[])將當(dāng)前輸入流中b.length個(gè)字節(jié)數(shù)據(jù)讀到一個(gè)字節(jié)數(shù)組中。read(byte[],int,int)將輸入流中l(wèi)en個(gè)字節(jié)數(shù)據(jù)讀入一個(gè)字節(jié)數(shù)組中。1.4PipedInputStream:實(shí)現(xiàn)了pipe的概念,主要在線程中使用.管道輸入流是指一個(gè)通訊管道的接收端。一個(gè)線程通過管道輸出流發(fā)送數(shù)據(jù),而另一個(gè)線程通過管道輸入流讀取數(shù)據(jù),這樣可實(shí)現(xiàn)兩個(gè)線程間的通訊。cons
6、truct---PipedInputStream()創(chuàng)建一個(gè)管道輸入流,它還未與一個(gè)管道輸出流連接。PipedInputStream(PipedOutputStream)創(chuàng)建一個(gè)管道輸入流,它已連接到一個(gè)管道輸出流。1.5SequenceInputStream:把多個(gè)InputStream合并為一個(gè)InputStream.“序列輸入流”類允許應(yīng)用程序把幾個(gè)輸入流連續(xù)地合并起來,并且使它們像單個(gè)輸入流一樣出現(xiàn)。每個(gè)輸入流依次被讀取,直到到達(dá)該流的末尾。然后“序列輸入流”類關(guān)閉這個(gè)流并自動(dòng)地切換到下一個(gè)輸入流。cons
7、truct---SequenceInputStream(Enumeration)創(chuàng)建一個(gè)新的序列輸入流,并用指定的輸入流的枚舉值初始化它。SequenceInputStream(InputStream,InputStream)創(chuàng)建一個(gè)新的序列輸入流,初始化為首先讀輸入流s1,然后讀輸入流s2。2、OutputSteam2.1ByteArrayOutputStream:把信息存入內(nèi)存中的一個(gè)緩沖區(qū)中.該類實(shí)現(xiàn)一個(gè)以字節(jié)數(shù)組形式寫入數(shù)據(jù)的輸出流。當(dāng)數(shù)據(jù)寫入緩沖區(qū)時(shí),它自動(dòng)擴(kuò)大。用toByteArray()和toStri
8、ng()能檢索數(shù)據(jù)。constructor(A)---ByteArrayOutputStream()創(chuàng)建一個(gè)新的字節(jié)數(shù)組輸出流。(B)---ByteArrayOutputStream()創(chuàng)建一個(gè)新的字節(jié)數(shù)組輸出流。(C)---ByteArrayOutputStream(int)創(chuàng)建一個(gè)新的字節(jié)數(shù)組輸出流,并帶有指定大小字節(jié)的緩沖區(qū)容量。toString(St