版權(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é)為單位來傳輸?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ì)象就無能為力了。把一個(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. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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年天津市審計(jì)局所屬事業(yè)單位招聘筆試歷年參考題庫附帶答案詳解
- 天津2025年天津中醫(yī)藥大學(xué)第一附屬醫(yī)院招聘96人筆試歷年參考題庫附帶答案詳解
- 2026年陜寧晉青海四省高三語文1月聯(lián)考試卷附答案解析
- 臺(tái)州浙江臺(tái)州市椒江區(qū)市場(chǎng)開發(fā)服務(wù)中心招聘筆試歷年參考題庫附帶答案詳解
- 北京2025年首都醫(yī)科大學(xué)附屬北京朝陽醫(yī)院招聘4人筆試歷年參考題庫附帶答案詳解
- 2025年中醫(yī)藥基礎(chǔ)理論知識(shí)考核答案及解析
- 2025年公務(wù)員招聘考試試題及答案
- 黑龍江護(hù)理單招試題及答案題庫
- 2025舞蹈聯(lián)考理論試題及答案
- 有關(guān)安全條款的裝修合同
- 2024-2025學(xué)年廣東省實(shí)驗(yàn)中學(xué)高一(上)期中語文試卷
- DB34T 1948-2013 建設(shè)工程造價(jià)咨詢檔案立卷標(biāo)準(zhǔn)
- 鋼鐵制造的工藝流程(內(nèi)部資料)課件
- DB31-T 1448-2023 監(jiān)獄場(chǎng)所消防安全管理規(guī)范
- 公司干部調(diào)研方案
- 無糾紛自愿離婚協(xié)議書
- 四川省高等教育自學(xué)考試畢業(yè)生登記表【模板】
- 專題五 以新發(fā)展理念引領(lǐng)高質(zhì)量發(fā)展
- GB/T 22417-2008叉車貨叉叉套和伸縮式貨叉技術(shù)性能和強(qiáng)度要求
- GB/T 1.1-2009標(biāo)準(zhǔn)化工作導(dǎo)則 第1部分:標(biāo)準(zhǔn)的結(jié)構(gòu)和編寫
- 長(zhǎng)興中學(xué)提前招生試卷
評(píng)論
0/150
提交評(píng)論