![Java網(wǎng)絡程序設計 課件 單元7-02字節(jié)流和字符流_第1頁](http://file4.renrendoc.com/view2/M02/33/0D/wKhkFmaiI4yATGofAAGlFXKUGeY102.jpg)
![Java網(wǎng)絡程序設計 課件 單元7-02字節(jié)流和字符流_第2頁](http://file4.renrendoc.com/view2/M02/33/0D/wKhkFmaiI4yATGofAAGlFXKUGeY1022.jpg)
![Java網(wǎng)絡程序設計 課件 單元7-02字節(jié)流和字符流_第3頁](http://file4.renrendoc.com/view2/M02/33/0D/wKhkFmaiI4yATGofAAGlFXKUGeY1023.jpg)
![Java網(wǎng)絡程序設計 課件 單元7-02字節(jié)流和字符流_第4頁](http://file4.renrendoc.com/view2/M02/33/0D/wKhkFmaiI4yATGofAAGlFXKUGeY1024.jpg)
![Java網(wǎng)絡程序設計 課件 單元7-02字節(jié)流和字符流_第5頁](http://file4.renrendoc.com/view2/M02/33/0D/wKhkFmaiI4yATGofAAGlFXKUGeY1025.jpg)
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
文件操作應用單元七File類字節(jié)流和字符流其他流目錄CONTENTS1237.2字節(jié)流和字符流
在Java中,文件的輸入和輸出是通過流(Stream)來實現(xiàn)的,流的概念源于UNIX中管道(pipe)的概念。在UNIX系統(tǒng)中,管道是一條不間斷的字節(jié)流,用來實現(xiàn)程序或進程間的通信,或讀寫外圍設備、外部文件等。
—個流,必有源端和目的端,它們可以是計算機內(nèi)存的某些區(qū)域,也可以是磁盤文件,甚至可以是Internet上的某個URL。對于流而言,我們不用關心數(shù)據(jù)是如何傳輸?shù)?,只需要向源端輸入?shù)據(jù),從目的端獲取數(shù)據(jù)即可。圖7.5輸入流示意圖圖7.6輸出流示意圖7.2.1字節(jié)流
所有的字節(jié)流類都繼承自InputStream或OutputStream這兩個抽象類,這兩個抽象類擁有的方法可以通過查閱JavaAPI獲得。JDK提供了不少字節(jié)流,下面列舉了5個輸入字節(jié)流類,輸出字節(jié)流類和輸入字節(jié)流類存在對應關系。
●FileInputStream:把一個文件作為輸入源,從本地文件系統(tǒng)中讀取數(shù)據(jù)字節(jié),實現(xiàn)對文件的讀取操作。
●ByteArraylnputStream:把內(nèi)存中的一個緩沖區(qū)作為輸入源,從內(nèi)存數(shù)組中讀取數(shù)據(jù)字節(jié)。
●ObjectInputStream:對以前使用ObjectOutputStream寫入的基本數(shù)據(jù)和對象進行反序列化,用于恢
復那些以前序列化的對象,注意這個對象所屬的類必須實現(xiàn)Serializable接口。
●PipedlnputStream:實現(xiàn)了管道的概念,從線程管道中讀取數(shù)據(jù)字節(jié)。主要在線程中使用,用于兩個
線程間通信。
接下來列舉InputStream輸入流的可用方法。
●intread()
從輸入流中讀取數(shù)據(jù)的下一個字節(jié),返回0到255范圍內(nèi)的int型字節(jié)值。
●intread(byte[]b)
從輸入流中讀取一定數(shù)量的字節(jié),并將其存儲在字節(jié)數(shù)組b中,以整數(shù)形式返回實際讀取的字節(jié)數(shù)。
●intread(byte[]b,intoff,intlen)
將輸入流中最多l(xiāng)en(第三個參數(shù)值)個數(shù)據(jù)字節(jié)讀入字節(jié)數(shù)組b中,
以整數(shù)形式返回實際讀取的字節(jié)數(shù),off指數(shù)組b中將寫入數(shù)據(jù)的初始偏移量。
●voidclose()
關閉此輸入流,并釋放與該流關聯(lián)的所有系統(tǒng)資源。7.2.1字節(jié)流
所有的字符流類都繼承自Reader和Writer這兩個抽象類,其中Reader是用于讀取字符流的抽象類,子類必須實現(xiàn)的方法read(char[],int,int)和close()。多數(shù)子類重寫了此處定義的一些方法,以提供更高的效率或完成其他功能。Writer是用于寫入字符流的抽象類,和Reader類對應。7.2.2字符流
原先的I/O類庫只支持8位的字節(jié)流,不能很好地處理16位的Unicode字符。Unicode是國際化的字符集,這樣增加了Readei和Writer之后,就可以自動在本地字符集和Unicode國際化字符集之間進行轉換,程序員在應對國際化時不需要做過多額外的處理。編譯、運行程序,運行時在命令行輸入javaTestCharStreamC:\com\bd\zuche\Vehicle.javaC:\com\bd\zuche\Vehicle2.java,其中C:\com\bd\zuche\Vehicle.java是第一個參數(shù),C:\com\bd\zuche\Vehicle2.java是第二個參數(shù),運行結束后在C:\com\bd\zuche目錄下新建了一個Vehicle2.java文件,內(nèi)容和Vehicle.java文件內(nèi)容一致。7.2.2字符流importjava.io.*;publicclassTestCharStream{publicstaticvoidmain(String[]args)throwsIOException{FileReaderin=null;FileWriterout=null;try{//其中args[0]代表程序執(zhí)行時輸入的第一個參數(shù)in=newFileReader(args[0]);out=newFileWriter(args[l]);//通過逐個讀取、存入字符,實現(xiàn)文件復制intc;while((c=in.read())!==-1){out.write(c);}}catch(IOExceptione){System.out.prin
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度地質勘探司機雇傭及地質調(diào)查合同
- 2025年專題技術咨詢合同范文(2篇)
- 2025年度門衛(wèi)安全防護設備操作勞動合同范本
- 2025年不銹鋼板購銷合同范文(2篇)
- 2025年口腔醫(yī)生勞動合同(含專利成果分享)
- 2025年工礦產(chǎn)品質量檢測及認證合同模板
- 2025年度醫(yī)療設備購置貸款合同(含設備租賃擔保)
- 2025年度大型設備搬遷與運輸承攬合同模板
- 2025年度公章授權委托書模板版權保護服務合同
- 2025年度智能公寓管理服務合同范本
- 音樂教學集訓課程設計
- 山東省濰坊市2024-2025學年高三上學期期末 地理試題(含答案)
- 肺切除手術的術前評估課件
- 招聘專職人員報名表
- 《大學生創(chuàng)新與創(chuàng)業(yè)》課件
- 護士的護理職業(yè)生涯規(guī)劃
- 2024年高考語文復習:古詩文閱讀強化練習題匯編(含答案解析)
- 不良反應事件及嚴重不良事件處理的標準操作規(guī)程藥物臨床試驗機構GCP SOP
- 勞動合同(模版)4篇
- 義務教育數(shù)學課程標準(2022年版)重點
- 2021上海春考作文題解析及范文(怎樣做與成為什么樣人)
評論
0/150
提交評論