java核心技術(shù)精講第09章內(nèi)存流_第1頁(yè)
java核心技術(shù)精講第09章內(nèi)存流_第2頁(yè)
java核心技術(shù)精講第09章內(nèi)存流_第3頁(yè)
java核心技術(shù)精講第09章內(nèi)存流_第4頁(yè)
java核心技術(shù)精講第09章內(nèi)存流_第5頁(yè)
已閱讀5頁(yè),還剩2頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

李興華Java培訓(xùn)系列課程內(nèi)存流本章學(xué)習(xí)目標(biāo)掌握java.io包中類的繼承關(guān)系;掌握File類的使用,并且可以通過(guò)File類進(jìn)行文件的創(chuàng)建、刪除、文件夾的列表等操作;掌握字節(jié)流或字符流操作文件內(nèi)容并區(qū)分出字節(jié)流與字符流的區(qū)別;掌握內(nèi)存操作操作流的使用;掌握對(duì)象序列化的作用以及Serializable接口、transient關(guān)鍵字的使用。掌握打印流及掃描流的使用;了解字符的主要編碼類型及亂碼產(chǎn)生原因;了解System類對(duì)IO的支持:System.out、System.err、System.in。內(nèi)存流在流的操作中除了進(jìn)行文件的輸入與輸出操作之外,也可以針對(duì)于內(nèi)存進(jìn)行同樣的操作。假設(shè)說(shuō)現(xiàn)在某一種應(yīng)用,需要進(jìn)行IO操作,但是又不希望在磁盤(pán)上產(chǎn)生一些文件的時(shí)候,就可以將內(nèi)存當(dāng)作一個(gè)臨時(shí)文件進(jìn)行操作。在Java中,針對(duì)于內(nèi)存操作提供有兩組類:字節(jié)內(nèi)存流:ByteArrayInputStream(內(nèi)存字節(jié)輸入流)、ByteArrayOutputStream(內(nèi)存字節(jié)輸出流);字符內(nèi)存流:CharArrayReader(內(nèi)存字符輸入流)、CharArrayWriter(內(nèi)存字符輸出流)。范例:實(shí)現(xiàn)一個(gè)小寫(xiě)字母轉(zhuǎn)大寫(xiě)字母的操作publicclassTestDemo{ publicstaticvoidmain(String[]args)throwsException{//此處直接拋出

Stringstr="&";//要求被轉(zhuǎn)換的字符串

//本次將通過(guò)內(nèi)存操作流實(shí)現(xiàn)轉(zhuǎn)換。先將數(shù)據(jù)保存在內(nèi)存流里面,而后從里面取出每一個(gè)數(shù)據(jù)

//將所有要讀取的數(shù)據(jù)設(shè)置到內(nèi)存輸入流之中,本次利用向上轉(zhuǎn)型為InputStream類實(shí)例化

InputStreaminput=newByteArrayInputStream(str.getBytes()); //為了能夠?qū)⑺械膬?nèi)存流數(shù)據(jù)取出,可以使用ByteArrayOutputStream OutputStreamoutput=newByteArrayOutputStream(); inttemp=0; //讀取每一個(gè)字節(jié)數(shù)據(jù)

//經(jīng)過(guò)此次循環(huán)之后,所有的數(shù)據(jù)都將保存在內(nèi)存輸出流對(duì)象之中

while((temp=input.read())!=-1){ //每次讀取一個(gè)數(shù)據(jù)

//將讀取進(jìn)來(lái)的數(shù)據(jù)轉(zhuǎn)換為大寫(xiě)字母,利用Character.toUpperCase()可以保證只轉(zhuǎn)換字母

output.write(Character.toUpperCase(temp)); //字節(jié)輸出流

}

System.out.println(output);//調(diào)用toString()方法

input.close(); //關(guān)閉輸入流

output.close(); //關(guān)閉輸出流

}}程序執(zhí)行結(jié)果:WWW.YOOTK.COM&WWW.MLDN.CN內(nèi)存流操作范例:實(shí)現(xiàn)文件的合并讀取public

classTestDemo{

public

static

voidmain(String[]args)throwsException{//異常簡(jiǎn)化處理 FilefileA=newFile("D:"+File.separator+"infoa.txt");//文件路徑 FilefileB=newFile("D:"+File.separator+"infob.txt");//文件路徑 InputStreaminputA=newFileInputStream(fileA);//字節(jié)輸入流 InputStreaminputB=newFileInputStream(fileB);//字節(jié)輸入流 ByteArrayOutputStreamoutput=newByteArrayOutputStream();//內(nèi)存輸出流

int

temp=0; //每次讀取一個(gè)字節(jié)

while((temp=inputA.read())!=-1){//循環(huán)讀取數(shù)據(jù)

output.write(temp); //將數(shù)據(jù)保存到輸出流 }

while((temp=inputB.read())!=-1){//循環(huán)讀取數(shù)據(jù)

output.write(temp); //將數(shù)據(jù)保存到輸出流 }//現(xiàn)在所有的內(nèi)容都保存在了內(nèi)存輸出流里面,所有的內(nèi)容變?yōu)樽止?jié)數(shù)組取出

byte

data[]=output.toByteArray();//取出全部數(shù)據(jù)

output.close();//關(guān)閉輸出流

inputA.close();//關(guān)閉輸入流

inputB.close();//關(guān)閉輸入流 System.out.println(

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論