第12天io轉(zhuǎn)換流序列化_第1頁
第12天io轉(zhuǎn)換流序列化_第2頁
第12天io轉(zhuǎn)換流序列化_第3頁
第12天io轉(zhuǎn)換流序列化_第4頁
第12天io轉(zhuǎn)換流序列化_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

11IO第1章字符publicpublicclassCharStreamDemopublicstaticvoidmain(String[]args)throwsIOException } 中publicstaticvoid Text()throwsIOException{FileInputStreamfis=newFileInputStream("c:\\cn.txt");intch=0;while((ch=fis.read())!=-1){}}publicstaticText()throwsIOExceptionFileOutputStreamfosnewFileOutputStream("c:\\cn.txt"); }}ASCII表。其中就是各種英文字符對應的編碼。1、ascii:一個字節(jié)中的7位就可以表示。對應的碼值都是正數(shù)。 000000002、iso-8859-1:拉丁碼表latin,用了一個字節(jié)用的8位。1- 1GBK:目前最常用的中文碼表,2萬的中文和符號。用兩個字節(jié)表示,其中的一部分文字,10Javacharcharca標準化,在每一個字節(jié)頭加入了編碼信息(api中查找)。對于我們開發(fā)而言;常見的編碼GBK GBK:2UTF-8:3文字--->(數(shù)字)a0110(數(shù)字)--->文字::就是把看不懂的內(nèi)容,轉(zhuǎn)換成看懂的內(nèi)容。0110 IO在IO開發(fā)過程中,我們傳輸最頻繁的數(shù)據(jù)為字符, IO||InputStream|-FileInputStream|OuputStream|FileOutputStream||Reader|FileReader(簡便的流|Writer|FileWriter(簡便的流Java中流名規(guī)范功能+類第2章轉(zhuǎn)換我們知道計算機底層數(shù)據(jù)的都是二進制數(shù)據(jù),而我們生活中的各種各樣的數(shù)據(jù),如何才能ASCII表。其中就是各種英文字符對應的編碼。1、ascii:一個字節(jié)中的7位就可以表示。對應的字節(jié)都是正數(shù)。0-xxxxxxx2、iso-8859-1:拉丁碼表latin,用了一個字節(jié)用的8位。1-xxxxxxx 1GBK:目前最常用的中文碼表,2萬的中文和符號。用兩個字節(jié)表示,其中的一部分文字,10Javacharcharca標準化,在每一個字節(jié)頭加入了編碼信息(api中查找)。對于我們開發(fā)而言;常見的編碼GBK 文字--->(數(shù)字)(數(shù)字)--->文字::就是把看不懂的內(nèi)容,轉(zhuǎn)換成看懂的內(nèi)容 的思想OutputStreamWriter的API介紹,OutputStreamWriter是字符流通向字節(jié)流的橋梁:可使用publicpublicstatic()throwsExceptionFileOutputStreamfos=newOutputStreamWriterosw=newOutputStreamWriter(fos,"utf-}其實在OutputStreamWriter流中自己的高效區(qū)當我們調(diào)用OutputStreamWriter對象的write方法時,會拿著字符到指定的碼表中進行查詢,把查到的字符編碼值轉(zhuǎn)成字節(jié)數(shù)存放到定的字符編碼表字節(jié)并將其為字符。它使用的字符集可以由名稱指定或顯式給定,或者可publicpublicclassInputStreamReaderDemopublicstaticvoidmain(String[]args)throwsIOException}publicstatic ()throws InputStreamin=new//InputStreamReaderisr=newInputStreamReader(in);這樣創(chuàng)建對象,會用本地默 InputStreamReaderisr=newInputStreamReader(in,"utf-intch=while((ch=isr.read())!=-1){}}}Writer|OutputStreamWriter ,Reader字符輸入流|InputStreamReader:(字節(jié)流→字符流(OutputStreamWriterInputStreamReaderFileWriterFileReader:作為子類,僅作為操作字符文件的便捷類存在。當操作的字符文件,InputStreamReaderisrnewInputStreamReader(newFileInputStream("a.txt"));//GBKInputStreamReaderisr=newInputStreamReader(newFileInputStream("a.txt"),"GBK");//FileReaderfr=newOutputStreamWriterosw=newOutputStreamWriter(newFileOutputStream(“a.txt”));OutputStreamWriterosw=newOutputStreamWriter(newFileOutputStream(“a.txt”),”GBK”);FileWriterfw=new字節(jié)--->--->字符:看不懂的--->看的懂的。需要讀。輸入流。字符--->編碼--->--->看不懂的。需要寫。輸出流。第3章序列化流與反序列化用于從流中對象的操作流ObjectInputStream 稱為反序列化流用于向流中寫入對象的操作流ObjectOutputStream 稱為序列化流ObjectOutputStream將Java對象的基本數(shù)據(jù)類型和圖形寫入OutputStream??梢允褂肙bjectInputStream(重構(gòu))對象。通過在流中使用文件可以實現(xiàn)對象的持久。注意:只能將支持java.io.Serializable接口的對象寫入流中publicpublicclassObjectStreamDemo ClassNotFoundException*將一個對 }publicstaticvoidwriteObj()throwsIOException FileOutputStreamfos=new??類ObjectOutputStreamoos=new }}publicpublicimplementsSerializableprivateStringprivateint}()(Stringname,intage)=this.age=}publicStringgetName()return}publicvoidsetName(Stringname)=}publicintgetAge()return}publicvoidsetAge(intage)this.age=}publicStringtoString()return [name="+name+",age="+age+}}ObjectInputStreamObjectOutputStreampublicpublicclassObjectStreamDemo ClassNotFoundException}publicstaticvoidreadObj()throwsIOException,ClassNotFoundException FileInputStreamfis=new ObjectInputStreamois=newobj=}}當一個對象要能被序列化,這個對象所屬的類必須實現(xiàn)Serializable化也會發(fā)生異常InvalidClasception。發(fā)生這個異常的原因如下:publicpublic implementsSerializable privatestaticfinallongserialVersionUID=privateStringname;privateintage; (){} (Stringname,intage)=name;this.age=age;}publicStringgetName()return}publicvoidsetName(Stringname)=}publicintgetAge()return}publicvoidsetAge(intage)this.age=}publicStringtoString()return [name="+name+",age="+age+}}transienttransient修飾了,序列化時這個屬性就不會被序列化了。public*給類顯implementsSerializablepublic*給類顯implementsSerializableprivateprivatestaticfinallongserialVersionUID=privatestaticStringprivatetransient/*瞬態(tài)*int ()} (Stringname,intage)=name;this.age=age;}publicStringgetName()return}publicvoidsetName(Stringname)=}publicintgetAge()return}publicvoidsetAge(intage)this.age=}publicStringtoString()return[name="+name+",age="+age+}}第4章打印打印流的概字節(jié)打印流字符打印流voidprint(Stringstr):voidprintln(Stringstr):需求:把指定的數(shù)據(jù),寫入到printFile.txt**1*2*3publicclassPrintWriterDemopublicstaticvoidmain(String[]args)throwsIOException//PrintWriterout=newPrintWriter(newFileWriter("printFile.txt"));PrintWriterout=newPrintWriter("printFile.txt");for(inti=0;i<5;i++){ }}}第5章commons-導入加入classpath的第jar包內(nèi)的class文件才能在項目中使用1.lib mons-io.jar拷貝到lib文件mons-io.jar,BuildPath→AddtoBuildPathreadFileToString(Filefile):文件內(nèi)容,并返回一個String;writeStringToFile(Filefile,Stringcontent)contentfilecopyFile(FilesrcFile,FiledestFile):文件copyDirectoryToDirectory(FilesrcDir,FiledestDir);文件夾**普通方式,完成文件publicclassCommonsIODemo01publicstaticvoidmain(String[]args)throwsIOException//method1("D:\\test.avi",通 FileUtils.copyFile(newFile("D:\\test.avi"),new}privatestaticvoidmethod1(Stringsrc,Stringdest)throwsIOException==byte[]buffer=newbyte[1

溫馨提示

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

評論

0/150

提交評論