




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
內(nèi)容提要流模型字節(jié)流低級(jí)流高級(jí)流字符流低級(jí)流高級(jí)流NIO簡(jiǎn)介流模型Java中數(shù)據(jù)流這個(gè)模型類似于管道中的水流:低級(jí)流高級(jí)流高級(jí)流數(shù)據(jù)外部
設(shè)備程序
代碼
圖7.1數(shù)據(jù)流Java數(shù)據(jù)流編程的框架是:(1)建立流(對(duì)應(yīng)鋪設(shè)管道);(2)通過流讀/寫數(shù)據(jù)(對(duì)應(yīng)從管道中取水/向管道中注水);(3)關(guān)閉流(對(duì)應(yīng)拆除管道)。低級(jí)字節(jié)流低級(jí)流都與外部設(shè)備(如磁盤文件)相連,就像深井中的水龍帶一樣,里面的數(shù)據(jù)流量不可能太大,Java設(shè)計(jì)低級(jí)流的流量為每讀/寫一次一個(gè)字節(jié)(byte),即低級(jí)流是以字節(jié)為單位來(lái)傳輸?shù)?。最常用的低?jí)字節(jié)流莫過于:FileInputStreamFileOutputStream把這兩個(gè)類研究透了,其他的低級(jí)流都是類似的,讀者查閱相應(yīng)的JDKAPI即可。FileInputStream構(gòu)造方法有:FileInputStream(Filefile)throwsFileNotFoundException
FileInputStream(Stringname)throwsFileNotFoundException讀取數(shù)據(jù)用到read()方法:intread()throwsIOException
intread(byte[]b)throwsIOException
intread(byte[]b,intoff,intlen)throwsIOException例程FileOutputStreamFileOutputStream與FileInputStream是一對(duì),前者是輸出流,而后者是輸入流,其道理是一樣的,下面列出其構(gòu)造:FileOutputStream(Filefile)
FileOutputStream(Filefile,booleanappend)
FileOutputStream(Stringname)
FileOutputStream(Stringname,booleanappend)下面列出其操作方法:voidwrite(byte[]b)
voidwrite(byte[]b,intoff,intlen)
voidwrite(intb)常用的其他低級(jí)流InputStreamOutputStreamByteArrayInputStreamByteArrayOutputStreamPipedInputStreamPipedOutputStream高級(jí)字節(jié)流若與外部設(shè)備以字節(jié)為單位進(jìn)行數(shù)據(jù)交換,使用低級(jí)流就足夠了,但很多時(shí)候交換的數(shù)據(jù)單位不能是字節(jié),例如int、double、String等類型的數(shù)據(jù)以及漢字等,這時(shí)就需要高級(jí)流了。高級(jí)流不直接與外部設(shè)備連接,而是與低級(jí)流或其他高級(jí)流銜接,用于對(duì)流經(jīng)的數(shù)據(jù)進(jìn)行特別處理(如過濾、整理等)。典型的高級(jí)流主要有DataOutputStream和DataInputStream。DataOutputStream構(gòu)造方法:DataOutputStream(OutputStreamout)功能方法voidwrite(intb)
voidwrite(byte[]b,intoff,intlen)
voidwriteBoolean(booleanv)
voidwriteByte(intv)
voidwriteChar(intv)
voidwriteShort(intv)
voidwriteInt(intv)
voidwriteLong(longv)
voidwriteFloat(floatv)
voidwriteDouble(doublev)
voidwriteUTF(Stringstr)例程DataInputStreamDataInputStream類似DataOutputStream,讀者可查閱JDKAPI,不再贅述。例程其他常用字節(jié)高級(jí)流高級(jí)流通常都繼承自類FilterOutputStream,常用的高級(jí)流還有:BufferedInputStreamBufferedOutputStreamPrintStreamPushbackInputStream字符流字符流是以Reader、Writer為根類的兩個(gè)獨(dú)立的類繼承體系,類似字節(jié)流,區(qū)別在于字符流用于處理字符(即文本,注意Java字符采用Unicode雙字節(jié)表示),涉及在JVM內(nèi)部(采用UTF-16編碼)和外部(采用操作系統(tǒng)默認(rèn)的字符集編碼)進(jìn)行字符編碼的轉(zhuǎn)換。而字節(jié)流用于處理字節(jié),不涉及字符編碼。字符流也有低級(jí)和高級(jí)之別,低級(jí)字符流與外部設(shè)備直接連接,高級(jí)字符流不能與外部設(shè)備直接連接,而是與低級(jí)字符流或其他高級(jí)字符流連接。低級(jí)的字符流中比較典型的要數(shù)FileWriter和FileReader了。關(guān)于這兩個(gè)類讀者可查閱JDKAPI,這里僅給出一個(gè)例子,演示其應(yīng)用:例程1例程2其他常用的字符流其他常用的低級(jí)字符流有:CharArrayWriter/CharArrayReader
PiperWriter/PiperReader
StringWriter/StringReader常用的高級(jí)字符流有:BufferedWriter/BufferedReader
LineNumberReader
PrintWriter
PushbackReader
OutputStreamWriter/InputStreamReader對(duì)象流與序列化字節(jié)流和字符流能夠讀寫的數(shù)據(jù)類型是Java基本類型和字符串,但對(duì)于讀寫一般的Java對(duì)象就無(wú)能為力了。把一個(gè)Java對(duì)象寫入到一個(gè)流中稱為對(duì)象的序列化(serialization),這需要ObjectOutputStream,從一個(gè)流中讀取數(shù)據(jù)并恢復(fù)成一個(gè)Java對(duì)象,這稱為對(duì)象的反序列化(unserialization),這需要ObjectInputStream。Java對(duì)象要能夠被序列化,必須實(shí)現(xiàn)接口Serializable。例程N(yùn)IO包簡(jiǎn)介為什么要引入NIO包流與塊的比較小結(jié)流模型字節(jié)流低級(jí)流高級(jí)流字符流低級(jí)流高級(jí)流NIO簡(jiǎn)介
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年塑料凳子項(xiàng)目可行性研究報(bào)告
- 疫情務(wù)工合同范本
- 2025年中國(guó)皮卡行業(yè)市場(chǎng)深度分析及行業(yè)發(fā)展趨勢(shì)報(bào)告
- 矸石利用可行性研究報(bào)告
- 北京某汽車線束項(xiàng)目申請(qǐng)報(bào)告
- 煤耗試驗(yàn)報(bào)告
- 汽車?yán)^電器項(xiàng)目可行性研究報(bào)告建議書申請(qǐng)備案
- 2025年中國(guó)血壓儀行業(yè)發(fā)展監(jiān)測(cè)及投資戰(zhàn)略規(guī)劃研究報(bào)告
- 人生導(dǎo)師合同范本
- 2025年廢棄資源和廢舊材料回收加工品項(xiàng)目建議書
- C語(yǔ)言大學(xué)實(shí)用教程課后參考答案蘇小紅
- 新部編版四年級(jí)下冊(cè)小學(xué)語(yǔ)文全冊(cè)課件PPT
- 高中人教物理選擇性必修一第3章第5節(jié)多普勒效應(yīng)課件
- 全套橋梁施工技術(shù)交底記錄
- 2021年山東省威海市中考語(yǔ)文真題(解析版)
- 主動(dòng)脈夾層的護(hù)理-ppt課件
- 高新技術(shù)企業(yè)認(rèn)定申請(qǐng)書樣例與說明
- 數(shù)據(jù)結(jié)構(gòu)英文教學(xué)課件:chapter6 Tree
- 高壓氧科工作總結(jié)高壓氧科個(gè)人年終總結(jié).doc
- 《政治學(xué)概論》教學(xué)大綱
- 食品生物化學(xué)習(xí)題謝達(dá)平(動(dòng)態(tài))
評(píng)論
0/150
提交評(píng)論