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