資源描述:
《java_io流詳解》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、Java的核心庫java.io提供了全面的IO接口,包括:文件讀寫、標(biāo)準(zhǔn)設(shè)備輸出等。Java中IO是以流為基礎(chǔ)進(jìn)行輸入輸出的,所有數(shù)據(jù)被串行化寫入輸出流,或者從輸入流讀入。在項(xiàng)目開發(fā)中,IO是非?;A(chǔ)的部分,在面試當(dāng)中經(jīng)常出現(xiàn)。對于初學(xué)者而言,IO部分是容易忽略的內(nèi)容,求職者一定要掌握該知識點(diǎn)。根據(jù)面試題詳解IO流。10.3.1?了解Java的IO類面試?yán)}28:下面關(guān)于System.out的說法哪個正確?請選擇正確的答案。(a)System.out是1個PrintStream。(b)System.
2、out是1個OutputStream。(c)System.out是1個FilterOutputStream。(d)System.out是1個PrintStream。(e)System.out在異常時,將拋出IOException??键c(diǎn):考查求職者對Java語言的IO處理的掌握。出現(xiàn)頻率:★★★★解析IO(Input/Output)是計(jì)算機(jī)輸出/輸出的接口。Java的核心庫java.io提供了全面的IO接口,包括文件讀寫、標(biāo)準(zhǔn)設(shè)備輸出等。Java中IO是以流為基礎(chǔ)進(jìn)行輸入輸出的,所有數(shù)據(jù)被串行化寫入輸
3、出流,或者從輸入流讀入。此外,Java也對塊傳輸提供支持,在核心庫java.nio中采用的便是塊IO。注意:流IO的好處是簡單易用,缺點(diǎn)是效率較低。塊IO效率很高,但編程比較復(fù)雜。Java的IO模型設(shè)計(jì)非常優(yōu)秀,它使用Decorator模式,用戶可以動態(tài)裝配不同功能的Stream,以便獲得需要的功能。例如,需要一個具有緩沖的文件輸入流,則應(yīng)當(dāng)組合使用FileInputStream和BufferedInputStream。Java的IO體系分Input/Output和Reader/Writer兩類,區(qū)
4、別在于Reader/Writer在讀寫文本時能自動轉(zhuǎn)換內(nèi)碼。基本上,所有的IO類都是配對的,即有XxxInput就有一個對應(yīng)的XxxOutput。Java的輸入/輸出操作是基于數(shù)據(jù)流(Stream)的,有序的字節(jié)或者字符通過一個通信信道從源地址傳送到目的地址。Java支持兩個數(shù)據(jù)流:InputStream和OutputStream。這兩個數(shù)據(jù)流又可以分為許多子類來完成IO功能。Java1.1版本正式加入了Reader和Writer兩個類,支持JavaIO的國際化標(biāo)準(zhǔn),并通過國際化字符編碼(Unico
5、de)將文本存儲起來。如圖10.5所示是JavaIO的類圖。如圖10.6所示是Java的Reader和Writer類圖。?Reader類類似于InputStream類,它是輸入類層次中的基礎(chǔ),Reader支持16位的Unicode字符輸出,而InputStream只支持8位字符輸出。Reader類有如下所示的6個直接子類。BufferedReader:該類支持緩沖字符輸入,它的子類LineNumberReader支持緩沖輸入并能夠追蹤行數(shù)。CharArrayReader:該類能夠從一個字符緩沖區(qū)中讀
6、入一個字符輸入流。FilterReader:是一個抽象類,是過濾的字符輸入數(shù)據(jù)流的基礎(chǔ)。InputStreamReader:該類可以把字節(jié)輸入流轉(zhuǎn)換為字符輸入流,子類FileReader用來讀取字符文件。PipedReader:該類用來從一個管道中讀取字符。StringReader:該類從一個字符串中讀取字符。?面試?yán)}28中,System.out是PrintStream的一個子類,而PrintStream繼承了FilterOutputStream類,F(xiàn)ilterOutputStream類繼承了Ou
7、tputStream類。PrintStream對象并沒有拋出IOException異常。答案:(a)(b)(c)。10.3.2?使用InputStream和OutputStream面試?yán)}29:哪個語句可以建立文件"file.txt"的字節(jié)輸入流?請選擇正確的答案。(a)InputStreamin=newInputStream("file.txt");(b)InputStreamin=newFileReader("file.txt");(c)FileInputStreamin=newFileOutp
8、utStream("file.txt");(d)FileInputStreamin=newFileInputStream("file.txt");考點(diǎn):考查求職者對InputStream和OutputStream的掌握。出現(xiàn)頻率:★★★★解析1.InputStream類的常見方法publicabstractintread()throwsIOException:從當(dāng)前輸入流中讀取數(shù)據(jù)的下一個字節(jié)。返回的字節(jié)值是在0~255范圍內(nèi)的一個int型數(shù)。如果已讀到流的末尾,沒有