資源描述:
《《java輸入輸出流》PPT課件》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、第九章輸入輸出流輸入輸出流:Java的輸入輸出功能必須借助于輸入輸出類庫Java.io包來實現(xiàn),這個包中的類大部分是用來完成流式輸入輸出的流類。在java中,把能夠讀取一個字節(jié)序列的對象稱為一個輸入流,把能夠?qū)懸粋€字節(jié)的對象稱為一個輸出流。分別由InputStream和OutputStream表示。處理Unicode碼的字符流,由抽象類Reader和Writer派生。流流是指在計算機的輸入與輸出之間的數(shù)據(jù)的序列,而Java中的數(shù)據(jù)流有位流(字節(jié)流)和字符流之分;就流的運動方向而言,流可分為輸入流(inputstream)和輸出流(outputstream),輸入流代表從
2、外設(shè)流入計算機的數(shù)據(jù)序列;輸出流代表從計算機流向外設(shè)的數(shù)據(jù)序列。9.1java.io包簡介java.io包通過數(shù)據(jù)流、序列和文件系統(tǒng)為系統(tǒng)提供輸入輸出。9.2InputStream類和OutputStream類InputStream類的實現(xiàn):publicabstractclassInputStreamextendsObjectInputStream類的方法publicintavailable()throwsIOException返回目前輸入數(shù)據(jù)流中已有幾個字符準備好被讀取了.publicvoidclose()throwsIOException將這個輸入數(shù)據(jù)流關(guān)閉publ
3、icabstractintread()throwsIOException從輸入數(shù)據(jù)流讀取下一個字節(jié)并返回.返回值的范圍從0到255,但如果已經(jīng)到達數(shù)據(jù)流的結(jié)尾,沒有數(shù)據(jù)可以讀取了,則會返回-1.拋出異常InputStream類的方法publicintread(byte[]b)throwsIOException從輸入數(shù)據(jù)流中讀取數(shù)個字節(jié)放進數(shù)組b中,并返回所讀取到的字符數(shù)目,最多可以讀取和b長度相同的字符數(shù),但如果沒有讀取到則返回-1publiclongskip(longn)throwsIOException略過n個字節(jié)不讀取,會返回實際略過的字節(jié)數(shù)目.因為數(shù)據(jù)流中剩下的
4、數(shù)據(jù)可能不到n個字節(jié)那么多,所以此時返回值會小于nInputStream類的繼承關(guān)系InputStreamFileInputStream(文件輸入字節(jié))FilterInputStreamDataInputStream(格式轉(zhuǎn)換)BufferedInputStream(緩沖功能)System.in是System的一個靜態(tài)屬性,屬于InputStream類對象,用于輸入字節(jié)數(shù)據(jù)流,對應(yīng)標(biāo)準輸入設(shè)備:鍵盤。Java實例——標(biāo)準輸入importjava.io.*;publicclassStandardIn1{publicstaticvoidmain(String[]args)t
5、hrowsIOException{charc;System.out.println("輸入一個字符");c=(char)System.in.read();System.out.print("輸入的字符是:"+c);}}標(biāo)準輸入——System.inOutputStream類OutputStream類是所有輸出數(shù)據(jù)流的父類,所以它也被實現(xiàn)成抽象類,定義了所有輸出數(shù)據(jù)流都具有的共同特性.OutputStream類的實現(xiàn):publicabstractclassOutputStreamextendsObjectOutputStream類的繼承關(guān)系OutputStreamFile
6、OutputStream(文件輸出)FilterOutputStreamPrintStream(輸出到屏幕)DataOutputStream(格式轉(zhuǎn)換)BufferedOutputStream(緩沖功能)OutputStream類的methodpublicvoidclose()throwsIOException關(guān)閉與輸出數(shù)據(jù)流的連系publicvoidflush()throwsIOException將寫入的數(shù)據(jù)確實送到接受數(shù)據(jù)的裝置去.因為寫入的數(shù)據(jù)通常會先放到高速緩存(cache)里面,等到數(shù)量達到某一程度時,用這個方法將強迫數(shù)據(jù)寫進去.publicvoidwrite
7、(byte[]b)throwsIOException將數(shù)組b中的數(shù)據(jù)寫入輸出數(shù)據(jù)流OutputStream類的methodpublicvoidwrite(byte[]b,intoff,intlen)throwsIOException將b數(shù)組中從第off個字節(jié)開始,共寫入len個字節(jié)到輸出數(shù)據(jù)流publicabstractvoidwrite(intb)throwsIOException寫入一個字符到輸出數(shù)據(jù)流.這個method只會將b的8個低位寫入,將24個高位忽略掉.標(biāo)準輸出——System.outSystem.out是它的一個靜態(tài)屬性,