




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
DataInputStream和DataOutputStream類2學(xué)習(xí)目標(biāo)知識目標(biāo)掌握DataInputStream類的用法掌握DataOutputStream類的用法01能力目標(biāo)能夠合理運用DataInputStream和DataOutputStream類進(jìn)行文件讀寫023DataInputStream和DataOutputStream二者分別實現(xiàn)了DataInput和DataOutput接口。DataInputStream能以一種與機(jī)器無關(guān)(當(dāng)前操作系統(tǒng)等)的方式,直接從字節(jié)輸入流讀取JAVA基本類型和String類型的數(shù)據(jù),常用于網(wǎng)絡(luò)傳輸?shù)龋ňW(wǎng)絡(luò)傳輸數(shù)據(jù)要求與平臺無關(guān))常用方法包括:intread(byte[]b)//從包含的輸入流中讀取一定數(shù)量的字節(jié),并將它們存儲到緩沖區(qū)數(shù)組b中。
intread(byte[]b,intoff,intlen)//從包含的輸入流中將最多l(xiāng)en個字節(jié)讀入一個byte數(shù)組中。
booleanreadBoolean()bytereadByte()charreadChar()doublereadDouble()floatreadFloat()
DataInputStream類4intreadInt()longreadLong()shortreadShort()intreadUnsignedByte()intreadUnsignedShort()StringreadUTF()staticStringreadUTF(DataInputin)//從流in中讀取用UTF-8修改版格式編碼的Unicode字符格式的字符串;
//然后以String形式返回此字符串。voidreadFully(byte[]b)voidreadFully(byte[]b,intoff,intlen)DataInputStream類5關(guān)于readFully和read的說明:
1、readFully方法并不是說一下就把整個文件讀完了,不用去管是否到達(dá)文件末尾的異常。它只是在讀取數(shù)據(jù)的時候,會一直把緩沖區(qū)讀滿,否則一直處于阻塞狀態(tài)而等待讀取。2、read方法只是將字節(jié)流中的數(shù)據(jù)讀完。那么數(shù)據(jù)在TCP協(xié)議傳送的過程中,可能輸入流接受到的數(shù)據(jù)并不完全,只是其中的一部分。而如果這時候的緩沖區(qū)沒有滿的話,readFully將會繼續(xù)等待,直到緩沖區(qū)裝滿。3、某些時候,可能需要讀出特定的長度的字段。比如一些數(shù)據(jù)的頭信息之類的。這時候如果你用read去讀,那么可能還沒有讀完就返回來了。但是如果去用readFully讀,那么就會完整的給你讀出來。
4、更多的時候,如果不是確定要用特定長度的數(shù)據(jù)。還是用read去讀,用readFully有點危險。DataInputStream類6DataOutputStream則能夠直接將JAVA基本類型和String類型數(shù)據(jù)寫入到其他的字節(jié)輸入流。常用方法:voidflush()//清空此數(shù)據(jù)輸出流。
intsize()//返回計數(shù)器written的當(dāng)前值,即到目前為止寫入此數(shù)據(jù)輸出流的字節(jié)數(shù)。
voidwrite(byte[]b,intoff,intlen)//將指定byte數(shù)組中從偏移量off開始的len個字節(jié)寫入基礎(chǔ)輸出流。
voidwrite(intb)//將指定字節(jié)(參數(shù)b的八個低位)寫入基礎(chǔ)輸出流。
voidwriteBoolean(booleanv)//將一個boolean值以1-byte值形式寫入基礎(chǔ)輸出流。
voidwriteByte(intv)//將一個byte值以1-byte值形式寫出到基礎(chǔ)輸出流中。
voidwriteBytes(Strings)//將字符串按字節(jié)順序?qū)懗龅交A(chǔ)輸出流中。
DataOutputStream類7voidwriteChar(intv)//將一個char值以2-byte值形式寫入基礎(chǔ)輸出流中,先寫入高字節(jié)。voidwriteChars(Strings)//將字符串按字符順序?qū)懭牖A(chǔ)輸出流。voidwriteDouble(doublev)//使用Double類中的doubleToLongBits方法將double參數(shù)轉(zhuǎn)換為一個long值,然后將該long值以8-byte值形式寫入基礎(chǔ)輸出流中,先寫入高字節(jié)。voidwriteFloat(floatv)//使用Float類中的floatToIntBits方法將float參數(shù)轉(zhuǎn)換為一個int值,然后將該int值以4-byte值形式寫入基礎(chǔ)輸出流中,先寫入高字節(jié)。
voidwriteInt(intv)//將一個int值以4-byte值形式寫入基礎(chǔ)輸出流中,先寫入高字節(jié)。
DataOutputStream類8voidwriteLong(longv)//將一個long值以8-byte值形式寫入基礎(chǔ)輸出流中,先寫入高字節(jié)。
voidwriteShort(intv)//將一個short值以2-byte值形式寫入基礎(chǔ)輸出流中,先寫入高字節(jié)。
voidwriteUTF(Stringstr)//以與機(jī)器無關(guān)方式使用UTF-8修改版編碼將一個字符串寫入基礎(chǔ)輸出流。
DataOutputStream類9DataInputStream和DataOutputStream類【例子】
FileOutputStreamfos=newFileOutputStream("xxx.data");DataOutputStreamdos=newDataOutputStream(fos);dos.writeInt(100);dos.writeUTF("DataOutputStreamTest");dos.close();FileInputStreamfis=newFileInputStream("xxx.data");DataInputStreamdis=newDataInputStream(fis);System.out.println(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- YY/T 1949-2024人工智能醫(yī)療器械數(shù)據(jù)集專用要求:糖尿病視網(wǎng)膜病變眼底彩照
- 度合同制速記服務(wù)與保密全文
- 水產(chǎn)養(yǎng)殖合同范本專業(yè)版
- 租賃合同范本:車輛租賃協(xié)議
- 建筑設(shè)計服務(wù)合同樣本版
- 生態(tài)林地保護(hù)承包合同書樣本
- 企業(yè)貸款合同、利息計算標(biāo)準(zhǔn)
- 企業(yè)風(fēng)險控制反擔(dān)保合同模板
- 公租房解除合同范本
- 化工原料采購合同范本大全
- DLT 5630-2021 輸變電工程防災(zāi)減災(zāi)設(shè)計規(guī)程-PDF解密
- 2024年新疆維吾爾自治區(qū)專升本考試大學(xué)政治測試題含解析
- 邊坡噴錨施工工藝
- 2016-2023年婁底職業(yè)技術(shù)學(xué)院高職單招(英語/數(shù)學(xué)/語文)筆試歷年參考題庫含答案解析
- 海鮮酒樓營銷策劃方案
- 電能計量裝置配置規(guī)范
- 有償義工招募方案
- 冬春季節(jié)傳染病防控(流感)
- 潛在供應(yīng)商審核報告模版13-02
- 《臨床疾病概論》課件
- 安全生產(chǎn)費用使用臺賬
評論
0/150
提交評論