資源描述:
《46java中的io流技術》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在工程資料-天天文庫。
1、Java中的IO流技術1.10流(Input&OUtput)用來處理設備之間的數(shù)據(jù)傳輸,10系統(tǒng)的匸要目的是對數(shù)據(jù)進行讀寫操作。2.Java對數(shù)據(jù)的操作是通過流的方式,輸入流和輸出流都是對彖。3.Java中用于操作流的對象都存在于10包中。4?10流按照操作數(shù)據(jù)分為兩種:字節(jié)流和字符流。5?10流按照流向分為:輸入流和輸出流。輸入需要讀read方法,輸出需要嗎write方法。注意:輸入和輸出是基于Java程序而言的,而Java程序般又是在內(nèi)存中運行,所以也可以看做是基于內(nèi)存而言的,10系統(tǒng)的數(shù)據(jù)流向是以Java程序為參照物。將外設的數(shù)據(jù)讀入內(nèi)存稱為讀,即輸入;將內(nèi)存中
2、數(shù)據(jù)寫到外設屮,稱為寫,即輸出。6.Java的I/O:(1)I/O操作的冃的:從數(shù)據(jù)源(多種多樣,如文件、鍵盤、網(wǎng)絡等等)當中讀取數(shù)據(jù),以及將數(shù)據(jù)寫入到數(shù)據(jù)目的地(如文件、屏幕、網(wǎng)絡等等)當中;(2)i/o的流向:方向需要參照物,相對而言,對于java程序本身而言,需要程序讀取,即輸入流,需要寫到文件里,則就是輸出流;(3)流的概念:輸入流,輸出流,就像水流一樣。就像管道一樣,是一點一點的進行的傳輸;在數(shù)據(jù)源與目的地之間建立了一個管道;(4)I/O的分類:①輸入流與輸出流;②字節(jié)流與字符流;③節(jié)點流與處理流;7.以前只存在字節(jié)流,其實字節(jié)流可以讀取任何文件。但是后來為
3、了國際化統(tǒng)一,推出了字節(jié)流。由于不同的國家有不同的文字,同時乂有口己的文字編碼表,為了國際統(tǒng)一化,推出了國際統(tǒng)一編碼Unicode編碼。8.字符流的曲來:字節(jié)流讀取文字字節(jié)數(shù)據(jù)后,不直接操作,而是先查詢指定的編碼表,獲取對應的文字,再對這個文字進行操作。所以,簡單地說,字符流就是字節(jié)流+編碼表。字符流是以字符為處理單位的。9.字節(jié)流的兩個頂層父類(抽象基類):InputStream和Outputstream。10.字符流的兩個頂層父類(抽象基類):Reader和Writer。11.對上述四個基類加以說明:曲這四種基類派生出來的子類名稱都是以父類的名稱作為子類名稱后綴的
4、。如Inputstream的子類FilelnputStream;Reader的子類FileReader等。而且這些子類的前綴都代表了這些子類的功能。12.I/O的核心類:Inputstream和Outputstream這兩個都是抽象類,父類;所有的字節(jié)輸入流的類都是Inputstream的子類,所有的字節(jié)輸出流都是OutStream的了類。其屮兩個常用的了類是FilelnputStream和FileOutputStream;這些類都是屬于java.io.*;包的,使用前需要導入此包,importjava.io.*;子類FilelnputStream是用來讀取硬盤中文件
5、的數(shù)據(jù),子類FileOutputStream是用來向硬盤中的文件寫入數(shù)據(jù)。才亥與阜g才亥"02*1nputStreamzintread(t>yte[]b^intoff^intlen)OutpcitStream:x/oiyte[]t>.intoff,intlee)(5)read會返回一個讀取字節(jié)的個數(shù),調(diào)用時有三個參數(shù),當沒有讀到數(shù)據(jù)時,返回?1;write也是三個參數(shù)。(6)byte[]b是比特類型的數(shù)組,off是偏移量,len是讀取的最大長度。13?如果要操作文字數(shù)據(jù),建議優(yōu)先考慮字符流,因為字符流就是基于這個目的出現(xiàn)的。大文件讀寫,利用循環(huán)
6、即可,判斷依據(jù)是read方法的返回值,如杲返回J說明讀取結(jié)束。14.字符流:字符輸入流Reader和字符輸出流Writer;Reader和Writer都是抽象類,就是用來讓其他類繼承的,但是都有幾個構(gòu)造方法,抽象類的構(gòu)造方法是為子類創(chuàng)建對象初始化用的。了類是FileReader與FileWriter;調(diào)用方法如同字節(jié)流,只是數(shù)組是字符數(shù)組了,如Intread(char[]c;intoff;intlen);字符流與字節(jié)流操作特別類似,只不過是字節(jié)數(shù)組和字符數(shù)組,讀寫方法的不同(-er)o注意在讀寫之后要關閉讀寫方法。15?實驗:將內(nèi)存屮的數(shù)據(jù)寫到硬盤小指定的文件里。(1
7、)硬盤數(shù)據(jù)的基本體現(xiàn)就是文件,所以找到一個處理文件的類即可。(2)創(chuàng)建一個可以向文件中寫入字符數(shù)據(jù)的字符輸出流對象;既然寫數(shù)據(jù),就必須在創(chuàng)建對彖時就指定某個文件(用丁?存儲數(shù)據(jù)的目的地),也就是說這個輸出流類不能有空參數(shù)的構(gòu)造方法。(3)利用Writer對象的write方法,寫入數(shù)據(jù)。將數(shù)據(jù)寫入到臨時存儲緩沖區(qū)中。利用flush方法進行刷新,可以將數(shù)據(jù)寫到文件中。close方法關閉流和關閉資源執(zhí)行時,先進行刷新,將緩沖區(qū)中的數(shù)據(jù)寫入到文件屮。flush和close就相當于保存命令和關閉命令,關閉命令執(zhí)行之前會提醒是否保存。16.對文件操作吋,如果文件