46. java中的io流技術(shù)

46. java中的io流技術(shù)

ID:6029338

大?。?67.92 KB

頁(yè)數(shù):18頁(yè)

時(shí)間:2017-12-31

46. java中的io流技術(shù)_第1頁(yè)
46. java中的io流技術(shù)_第2頁(yè)
46. java中的io流技術(shù)_第3頁(yè)
46. java中的io流技術(shù)_第4頁(yè)
46. java中的io流技術(shù)_第5頁(yè)
資源描述:

《46. java中的io流技術(shù)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。

1、Java中的IO流技術(shù)1.IO流(Input&OUtput)用來(lái)處理設(shè)備之間的數(shù)據(jù)傳輸,IO系統(tǒng)的主要目的是對(duì)數(shù)據(jù)進(jìn)行讀寫(xiě)操作。2.Java對(duì)數(shù)據(jù)的操作是通過(guò)流的方式,輸入流和輸出流都是對(duì)象。3.Java中用于操作流的對(duì)象都存在于IO包中。4.IO流按照操作數(shù)據(jù)分為兩種:字節(jié)流和字符流。5.IO流按照流向分為:輸入流和輸出流。輸入需要讀read方法,輸出需要寫(xiě)write方法。注意:輸入和輸出是基于Java程序而言的,而Java程序一般又是在內(nèi)存中運(yùn)行,所以也可以看做是基于內(nèi)存而言的,IO系統(tǒng)的數(shù)據(jù)流向是以Jav

2、a程序?yàn)閰⒄瘴?。將外設(shè)的數(shù)據(jù)讀入內(nèi)存稱(chēng)為讀,即輸入;將內(nèi)存中數(shù)據(jù)寫(xiě)到外設(shè)中,稱(chēng)為寫(xiě),即輸出。6.Java的I/O:(1)I/O操作的目的:從數(shù)據(jù)源(多種多樣,如文件、鍵盤(pán)、網(wǎng)絡(luò)等等)當(dāng)中讀取數(shù)據(jù),以及將數(shù)據(jù)寫(xiě)入到數(shù)據(jù)目的地(如文件、屏幕、網(wǎng)絡(luò)等等)當(dāng)中;(2)I/O的流向:方向需要參照物,相對(duì)而言,對(duì)于java程序本身而言,需要程序讀取,即輸入流,需要寫(xiě)到文件里,則就是輸出流;(3)流的概念:輸入流,輸出流,就像水流一樣。就像管道一樣,是一點(diǎn)一點(diǎn)的進(jìn)行的傳輸;在數(shù)據(jù)源與目的地之間建立了一個(gè)管道;(4)I/O的分

3、類(lèi):①輸入流與輸出流;②字節(jié)流與字符流;③節(jié)點(diǎn)流與處理流;7.以前只存在字節(jié)流,其實(shí)字節(jié)流可以讀取任何文件。但是后來(lái)為了國(guó)際化統(tǒng)一,推出了字節(jié)流。由于不同的國(guó)家有不同的文字,同時(shí)又有自己的文字編碼表,為了國(guó)際統(tǒng)一化,推出了國(guó)際統(tǒng)一編碼Unicode編碼。8.字符流的由來(lái):字節(jié)流讀取文字字節(jié)數(shù)據(jù)后,不直接操作,而是先查詢(xún)指定的編碼表,獲取對(duì)應(yīng)的文字,再對(duì)這個(gè)文字進(jìn)行操作。所以,簡(jiǎn)單地說(shuō),字符流就是字節(jié)流+編碼表。字符流是以字符為處理單位的。9.字節(jié)流的兩個(gè)頂層父類(lèi)(抽象基類(lèi)):InputStream和Output

4、Stream。10.字符流的兩個(gè)頂層父類(lèi)(抽象基類(lèi)):Reader和Writer。11.對(duì)上述四個(gè)基類(lèi)加以說(shuō)明:由這四種基類(lèi)派生出來(lái)的子類(lèi)名稱(chēng)都是以父類(lèi)的名稱(chēng)作為子類(lèi)名稱(chēng)后綴的。如InputStream的子類(lèi)FileInputStream;Reader的子類(lèi)FileReader等。而且這些子類(lèi)的前綴都代表了這些子類(lèi)的功能。12.I/O的核心類(lèi):InputStream和OutputStream這兩個(gè)都是抽象類(lèi),父類(lèi);所有的字節(jié)輸入流的類(lèi)都是InputStream的子類(lèi),所有的字節(jié)輸出流都是OutStream的子類(lèi)

5、。其中兩個(gè)常用的子類(lèi)是FileInputStream和FileOutputStream;這些類(lèi)都是屬于java.io.*;包的,使用前需要導(dǎo)入此包,importjava.io.*;子類(lèi)FileInputStream是用來(lái)讀取硬盤(pán)中文件的數(shù)據(jù),子類(lèi)FileOutputStream是用來(lái)向硬盤(pán)中的文件寫(xiě)入數(shù)據(jù)。(1)read會(huì)返回一個(gè)讀取字節(jié)的個(gè)數(shù),調(diào)用時(shí)有三個(gè)參數(shù),當(dāng)沒(méi)有讀到數(shù)據(jù)時(shí),返回-1;write也是三個(gè)參數(shù)。(2)byte[]b是比特類(lèi)型的數(shù)組,off是偏移量,len是讀取的最大長(zhǎng)度。1.如果要操作文字?jǐn)?shù)

6、據(jù),建議優(yōu)先考慮字符流,因?yàn)樽址骶褪腔谶@個(gè)目的出現(xiàn)的。大文件讀寫(xiě),利用循環(huán)即可,判斷依據(jù)是read方法的返回值,如果返回-1說(shuō)明讀取結(jié)束。2.字符流:字符輸入流Reader和字符輸出流Writer;Reader和Writer都是抽象類(lèi),就是用來(lái)讓其他類(lèi)繼承的,但是都有幾個(gè)構(gòu)造方法,抽象類(lèi)的構(gòu)造方法是為子類(lèi)創(chuàng)建對(duì)象初始化用的。子類(lèi)是FileReader與FileWriter;調(diào)用方法如同字節(jié)流,只是數(shù)組是字符數(shù)組了,如Intread(char[]c;intoff;intlen);字符流與字節(jié)流操作特別類(lèi)似,只

7、不過(guò)是字節(jié)數(shù)組和字符數(shù)組,讀寫(xiě)方法的不同(-er)。注意在讀寫(xiě)之后要關(guān)閉讀寫(xiě)方法。3.實(shí)驗(yàn):將內(nèi)存中的數(shù)據(jù)寫(xiě)到硬盤(pán)中指定的文件里。(1)硬盤(pán)數(shù)據(jù)的基本體現(xiàn)就是文件,所以找到一個(gè)處理文件的類(lèi)即可。(2)創(chuàng)建一個(gè)可以向文件中寫(xiě)入字符數(shù)據(jù)的字符輸出流對(duì)象;既然寫(xiě)數(shù)據(jù),就必須在創(chuàng)建對(duì)象時(shí)就指定某個(gè)文件(用于存儲(chǔ)數(shù)據(jù)的目的地),也就是說(shuō)這個(gè)輸出流類(lèi)不能有空參數(shù)的構(gòu)造方法。(3)利用Writer對(duì)象的write方法,寫(xiě)入數(shù)據(jù)。將數(shù)據(jù)寫(xiě)入到臨時(shí)存儲(chǔ)緩沖區(qū)中。利用flush方法進(jìn)行刷新,可以將數(shù)據(jù)寫(xiě)到文件中。close方法關(guān)閉

8、流和關(guān)閉資源執(zhí)行時(shí),先進(jìn)行刷新,將緩沖區(qū)中的數(shù)據(jù)寫(xiě)入到文件中。flush和close就相當(dāng)于保存命令和關(guān)閉命令,關(guān)閉命令執(zhí)行之前會(huì)提醒是否保存。4.對(duì)文件操作時(shí),如果文件不存在,就會(huì)創(chuàng)建此文件;如果文件存在,就會(huì)覆蓋原來(lái)的數(shù)據(jù)(首先將原來(lái)數(shù)據(jù)清空,再寫(xiě)入新的數(shù)據(jù))。如果需要續(xù)寫(xiě)原文件,可以在構(gòu)造方法中加入true。實(shí)現(xiàn)續(xù)寫(xiě):FileWriter(String?fileName)Cons

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。