下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、IO框架KeyPoint* File類* 流的分類* 基本字節(jié)流* 字節(jié)過濾流* 基本字符流、橋轉(zhuǎn)換* 字符過濾流* 對象序列化練習(xí)1. (File類)以下關(guān)于File類說法正確的是:A.一個File對象代表了操作系統(tǒng)中的一個文件或者文件夾B,可以使用File對象創(chuàng)建和刪除一個文件C.可以使用File對象創(chuàng)建和刪除一個文件夾D.當(dāng)一個File對象被垃圾回收時,系統(tǒng)上對應(yīng)的文件或文件夾也被刪除2. (File類)有如下代碼:publicclassTestFilepublicstaticvoidmain(Stringargs)Filefile=newFile("chp13/corejav
2、a.txt");請選擇一個正確答案:A.corejava.txt文件在系統(tǒng)中被創(chuàng)建B.在windows系統(tǒng)上運行出錯,因為路徑分隔符不正確C.corejava.txt文件在系統(tǒng)中沒有被創(chuàng)建D.如果corejava.txt文件已存在,則拋出一個異常3. (File類)將下列代碼補充完整classTestMyFilepublicstaticvoidmain(Stringargs)throwsExceptionFilefile;/創(chuàng)建一個File對象表示當(dāng)前目錄下的“hello.txt”文件/判斷該文件是否存在如果該文件存在,則輸出該文件的完整路徑4. (流的分類)對于FileInputS
3、tream來說,從方向上來分,它是流,從數(shù)據(jù)單位上分,它是流,從功能上分,它是流。5. (字節(jié)流,F(xiàn)ileInputStream)FileInputStream有三個重載的read方法,其中1)無參的read方法返回值為一類型,表示2) intread(bytebs)方法返回值表示,參數(shù)表示3) intread(bytebs,intoffset,intlen)方法返回值表示,參數(shù)分別表示6. (FileInputStream)下面關(guān)于FileInputStream類型說法正確的是:A.創(chuàng)建FileInputStream對象是為了讀取硬盤上的文件B.創(chuàng)建FileInputStream對象時,如果
4、硬盤上對應(yīng)的文件不存在,則拋出一個異常C.利用FileInputStream對象可以創(chuàng)建文件D.FileInputStream對象讀取文件時,只能讀取文本文件。7. (FileOutputStream)填空:創(chuàng)建FileOutputStream對象時,如果對應(yīng)的文件在硬盤上不存在,則會如果對應(yīng)的文件在硬盤上已經(jīng)存在,則;如果使用FileOutputStream(Stringpath,booleanappend)這個構(gòu)造方法創(chuàng)建FileOutputStream對象,并給定第二個參數(shù)為true,則效果為創(chuàng)建FileOutputStream時(會|不會)產(chǎn)生異常。8. 代碼改錯classTestFi
5、leInputStreampublicstaticvoidmain(Stringargs)FileInputStreamfin=newFileInputStream("test.txt");trySystem.out.println(fin.read();fin.close();catch(Exceptione)9. (FileInputStream和FileOutputStream)利用FileInputStream和FileOutputStream,完成下面的要求:1)用FileOutputStream在當(dāng)前目錄下創(chuàng)建一個文件“test.txt”,并向文件輸出“Hell
6、oWorld”,如果文件已存在,則在原有文件內(nèi)容后面追加。2)用FileInputStream讀入test.txt文件,并在控制臺上打印出test.txt中的內(nèi)容。3)要求用try-catch-finally處理異常,并且關(guān)閉流應(yīng)放在finally塊中。10. (Data流)利用Data流,完成下面操作:1)判斷當(dāng)前目錄下是否存在一個“test.dat”的文件,如果該文件不存在,則往該文中寫入一個long類型的數(shù)值:10000L2)如果該文件存在,則從該文件中讀出數(shù)值,并把該數(shù)值加1之后,再存回文件中11 .(字符流、橋轉(zhuǎn)換)要想從某個文件中獲得一個字符輸出流,則至少有以下三種方式A.利用Fi
7、leWriter類B.利用PrintWriter類C.利用FileOutputStream類,并通過OutputStreamWriter類獲得Writer請簡述這三種方式獲得Writer的區(qū)別。12 .(字節(jié)流、字符流)以下幾種文件格式,應(yīng)當(dāng)使用字節(jié)流還是字符流?1) .java源文件2) .class字節(jié)碼文件3) .html網(wǎng)頁文件4) .jpg圖像文件5) .mp3音樂文件6)配置文件.bash_profile7).jar文件13 .(過濾流)連線題。把過濾流和相應(yīng)的功能用線連起來。注意,左右兩邊不是一一對應(yīng)的關(guān)系。ObjectInputStream字節(jié)流ObjectOutputStre
8、am字符流BufferInputStream讀八種基本類型BufferedOutputStream寫八種基本類型DataInputStream讀對象DataOutputStream寫對象PrintWriter緩沖功能Printstream讀入一行文本BufferedReader寫字符串并換行BufferedWriter寫字符串14 .(對象序列化)為了讓某對象能夠被序列化,要求其實現(xiàn)接口;為了讓該對象某個屬性不參與序列化,應(yīng)當(dāng)使用修飾符。15 .*(字符流、橋轉(zhuǎn)換)完成下面功能:事先在當(dāng)前目錄下準(zhǔn)備好一個test.txt的文本文件,要求該文本文件是使用GBK編碼的多行文本文件。如:test.t
9、xt窗前明月光疑是地上霜舉頭望明月低頭思故鄉(xiāng)利用字節(jié)流+橋轉(zhuǎn)換讀入這個文本文件,然后按照行的順序,以UTF-8的編碼方式,寫到test2.txt文件中,例:test2.txt低頭思故鄉(xiāng)舉頭望明月疑是地上霜窗前明月光16.*(Data流)有以下代碼publicclassCheckpublicstaticvoidmain(Stringargs)throwsExceptionFileOutputStreamfout=newFileOutputStream("test.dat");DataOutputStreamdout=newDataOutputStream(fout);dout
10、.writeInt(1);dout.writeDouble(0.01);dout.close();問:這個程序總共往文件中寫入了多少字節(jié)?A. 2B. 8C. 12D. 16E.字節(jié)數(shù)取決于具體平臺17 .*(對象序列化)在PrintWriter中,有一個方法print(Objectobj)在ObjectOutputStream中,有一個方法writeObject(Objectobj)請簡述這兩個方法的區(qū)別18 .*(對象序列化)寫出下面代碼運行結(jié)果importjava.io.*;classAddressimplementsSerializableprivateStringaddressNam
11、e;privateStringzipCode;/構(gòu)造方法/set/get方法publicStringtoString()returnaddressName+zipCode;)classStudentimplementsSerializableprivateStringname;privatetransientintage;privateAddressaddr;/構(gòu)造方法/set/get方法publicStringtoString()returnname+"+age+addr.toString();)publicclassTestObjectStreampublicstaticvoid
12、main(Stringargs)throwsExceptionAddressaddr=newAddress("Beijing","100000");Studentstu=newStudent("Tom”,18,addr);ObjectOutputStreamoos=newObjectOutputStream(newFileOutputStream("stu.dat");oos.writeObject(stu);oos.close();ObjectInputStreamoin=newObjectInputStream(newF
13、ileInputStream("stu.dat");Studentstu2=(Student)oin.readObject();oin.close();System.out.println(stu2);)19 .*(對象序列化)有以下代碼:importjava.io.*;classAddressprivateStringaddressName;privateStringzipCode;/構(gòu)造方法/get/set方法classWorkerimplementsSerializableprivateStringname;privateintage;privateAddressad
14、dress;/構(gòu)造方法/get/set方法publicclassTestSerializablepublicstaticvoidmain(Stringargs)throwsExceptionAddressaddr=newAddress("Beijing","100000");Workerw=newWorker("Tom",18,addr);ObjectOutputStreamoout=newObjectOutputStream(newFileOutputStream("fout.dat");oout.writeOb
15、ject(w);oout.close();選擇正確答案A.該程序編譯出錯B.編譯正常,運行時異常C.編譯正常,運行時也正常。20. *(字節(jié)流,BufferedReader)完成下面操作。在當(dāng)前目錄下創(chuàng)建一個worldcup.txt的文本文件,其格式如下:2006/意大利2002/巴西該文件采用“年份/世界杯冠軍”的方式保存每一年世界杯冠軍的信息。要求:讀入該文件的基礎(chǔ)上,讓用戶輸入一個年份,輸出該年的世界杯冠軍。如果該年沒有舉辦世界杯,則輸出“沒有舉辦世界杯”21. *(Buffered流,緩沖區(qū))有下面代碼importjava.io.*;publicclassTestBufferedWri
16、terpublicstaticvoidmain(Stringargs)throwsExceptionFileWriterfw=newFileWriter("test.txt");BufferedWriterbw=newBufferedWriter(fw);Stringstr="HelloWorld”;bw.write(str);在處放入什么代碼,能夠使得test.txt文件被正確寫入?A. bw.close()B. bw.flush();C. fw.close();22. *(Data流)在原有自動分配id的Account對象基礎(chǔ)上,利用Data流,完成下面的要求
17、:要求每次啟動程序時,id的自動分配都能在上一次運行的基礎(chǔ)上繼續(xù)。例如,假設(shè)有以下代碼:publicclassTestAccountpublicstaticvoidmain(Stringargs)Accounta1=newAccount();Accounta2=newAccount();Accounta3=newAccount();System.out.println(a1.getId();System.out.println(a2.getId();System.out.println(a3.getId();編譯之后,第一次運行javaTestAccount時,輸出10000110000210
18、0003第二次運行javaTestAccount時,輸出10000410000510000623. *(綜合)從命令行中讀入一個文件名,判斷該文件是否存在。如果該文件存在,則在原文件相同copy原文件名”的新文件,該文件內(nèi)容為原文件的拷貝路徑下創(chuàng)建一個文件名為例如:讀入/home/java/photo.jpg則創(chuàng)建一個文件/home/java/copy_photo.jpg新文件內(nèi)容和原文件內(nèi)容相同。24. *(可選,綜合)用兩種方式保存對象。有Worker對象,部分代碼如下:classWorkerprivateStringname;privateintageprivatedoublesalary;/構(gòu)造方法/get/set方法/toString方法1)完善Worker對象,并使其能使用對象序列化機制。2)利用ObjectOutputStream存入兩個Worker對象,然后使用ObjectInputStream讀出這兩個對象,并打印這兩個對象的信息。3)寫一個方法saveWorkerToFile(Workerw,Filefile),該方法完成下面的功能:假設(shè)有一個Worker對象w1,File
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電機與電氣控制技術(shù) 課件 項目5 交流電機控制電路的安裝、設(shè)計與調(diào)試
- 《GBT 21374-2008知識產(chǎn)權(quán)文獻與信息 基本詞匯》專題研究報告
- 《GBT 9984-2008工業(yè)三聚磷酸鈉試驗方法》專題研究報告
- 2026年甘肅慶陽市高職單招語文試題含答案
- 2026年廣東省廣州市輔警考試真題及答案
- 迪士尼施工安全培訓(xùn)課件
- 返工返崗安全培訓(xùn)內(nèi)容課件
- 食品衛(wèi)生知識試題及答案
- 車險知識課件演講
- 內(nèi)科主治醫(yī)師專項練習(xí)試題及答案
- 2025檢驗科個人年終工作總結(jié)
- 救護車急救護理查房
- 工程竣工移交單(移交甲方、物業(yè))
- 交熟食技術(shù)協(xié)議書
- 靜脈采血不良事件分析與改進
- JJF 2216-2025電磁流量計在線校準(zhǔn)規(guī)范
- 2024-2025學(xué)年廣東省深圳市福田區(qū)六年級(上)期末數(shù)學(xué)試卷
- 發(fā)改價格〔2007〕670號建設(shè)工程監(jiān)理與相關(guān)服務(wù)收費標(biāo)準(zhǔn)
- 道岔滾輪作用原理講解信號設(shè)備檢修作業(yè)課件
- 小學(xué)師徒結(jié)對師傅工作總結(jié)
- 廉潔征兵培訓(xùn)課件
評論
0/150
提交評論