

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第12章文件和流輸入和輸出是一個程序必備的功能,Java的應(yīng)用程序和JavaApplet往往經(jīng)常要通過輸入和輸出來讀寫數(shù)據(jù)。本章將介紹如何從一個能發(fā)送字節(jié)或字符序列的“數(shù)據(jù)源”獲得輸入,以及如何將輸出發(fā)送給能夠接收字節(jié)序列的一個“目標”。字節(jié)序列的數(shù)據(jù)源及目標可以是文件,也可以是一個網(wǎng)絡(luò)連接,甚至是一個內(nèi)存塊。在本章中,將重點討論用來操控文件的方法,以及用來將數(shù)據(jù)(可以是對象)實際寫入文件、將信息從文件中讀回的方法,或者是更新文件的方法
2、。12.1Java流類庫簡介流類庫簡介Java語言的輸入輸出功能是十分強大而靈活的,它往往需要包裝許多不同的對象。在Java類庫中,IO部分的內(nèi)容是很龐大的,因為它涉及的領(lǐng)域很廣泛:標準輸入輸出,文件的操作,網(wǎng)絡(luò)上的數(shù)據(jù)流,字符串流,對象流,zip文件流……本章的目的是做一個簡要的介紹。12.1.1流的概念Java所有的IO機制都是基于數(shù)據(jù)流的,這些數(shù)據(jù)流表示了字符或者字節(jié)數(shù)據(jù)的流動序列。Java的IO流提供了讀寫數(shù)據(jù)的標準方法。任何J
3、ava中表示數(shù)據(jù)源的對象都會提供以數(shù)據(jù)流的方式讀寫它的數(shù)據(jù)的方法。流是一個很形象的概念,當程序需要讀取數(shù)據(jù)時,就會開啟一個通向數(shù)據(jù)源的流,這個數(shù)據(jù)源可以是文件,內(nèi)存,或是網(wǎng)絡(luò)連接,則這就是“輸入流”,如圖121所示。類似的,當程序需要寫入數(shù)據(jù)的時候,就會開啟一個通向目的地的流,這就是“輸出流”,這時你就可以想像數(shù)據(jù)好像在這其中“流”動一樣,如圖122所示。圖121輸入流示意圖圖122輸出流示意圖第第第12章文件和流表121是字節(jié)流的幾個
4、常用子類及功能。表121字節(jié)流常用子類及功能字節(jié)流類功能簡單介紹DataInputStream包含了讀取Java標準數(shù)據(jù)類型的輸入流DataOutputStream包含了寫Java標準數(shù)據(jù)類型的輸出流ByteArrayInputStream從字節(jié)數(shù)組讀取的輸入流ByteArrayOutputStream寫入字節(jié)數(shù)組的輸出流FileInputStream從文件讀入的輸入流FileOutputStream寫入文件的輸出流PrintStrea
5、m包含最常見的Print()和Println()的輸出流PushbackInputStream返回一個字節(jié)到輸入流,主要用于編譯器的實現(xiàn)PipedInputStream輸入管道PipedOutputStream輸出管道SequenceInputStream將n個輸入流聯(lián)合起來,一個接一個按一定順序讀取BufferInputStream緩沖輸入流BufferOutputStream緩沖輸出流FilterInputStream實現(xiàn)了Inpu
6、tStream接口的過濾器輸入流FilterOutputStream實現(xiàn)了OutputStream接口的過濾器輸出流字節(jié)流抽象類InputStream和OutputStream的常用方法如下。(1)InputStream1)abstractintread():讀取一個字節(jié)的數(shù)據(jù),并返回讀到的字節(jié)。read方法若遇到數(shù)據(jù)流的末尾,便會返回一個–1值。2)intread(byte[]b):將數(shù)據(jù)讀入一個字節(jié)數(shù)組,同時返回讀回的字節(jié)數(shù)。和前面
7、一樣,如果遇到數(shù)據(jù)流的末尾,read方法會返回一個–1值。讀入的最大字節(jié)數(shù)由b.length界定。3)intread(byte[]bintoffintlen):將數(shù)據(jù)讀入一個字節(jié)數(shù)組。read會返回讀回的實際字節(jié)數(shù),或在流的結(jié)尾處返回一個–1值。其中:b:指定要把字節(jié)讀入哪個數(shù)組;off:指定數(shù)組的偏移位置,第一個字節(jié)應(yīng)放在哪個位置;len:讀回的最大字節(jié)數(shù)。4)longskip(longn):在輸入流中跳過幾個字節(jié),它返回的實際跳過的
8、字節(jié)數(shù)(如果遇到流的末尾,這個數(shù)字則可能小于n)。5)intavailable():返回在不加阻止的情況下,可用的字節(jié)數(shù)(“阻止”是指當前線程必須暫停,等待下一次被喚醒)。6)voidclose():關(guān)閉輸入流。(2)OutputStream1)abstractvoidwrite(intb):寫入一個字節(jié)的數(shù)據(jù)。2)voidwrite(byte[]b):寫入數(shù)組b內(nèi)的所有字節(jié)。3)voidwrite(byte[]bintoffintle
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論