版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Java07課后習(xí)題1、 選擇題:1. 下面關(guān)于訪問文件和目錄說法錯(cuò)誤的一項(xiàng)是(C)。A、File類雖然它不能訪問文件內(nèi)容,卻可以用來進(jìn)行文件的相關(guān)操作,它描述的是文件本身的屬性。B、File類如果需要訪問文件本身,則需要使用輸入/輸出流。C、File類可以使用文件路徑字符串來創(chuàng)建File實(shí)例,該文件路徑字符串可以是絕對(duì)路徑,但不可以是相對(duì)路徑,默認(rèn)情況下,程序會(huì)根據(jù)用戶的工作路徑來解釋相對(duì)路徑,通常就是Java虛擬機(jī)所在的路徑。(也可以是相對(duì)路徑)D、將路徑當(dāng)作File類來處理,路徑名中除了最后一個(gè)之外每個(gè)字段都表示一個(gè)目錄;最后一個(gè)字段可能表示一個(gè)目錄或文件名。2. 下面關(guān)于流的描述有誤的
2、一項(xiàng)是( A )。A、流是指一連串流動(dòng)的字符,是以先進(jìn)后出的方式發(fā)送信息的通道。B、在Java中,處理字節(jié)流的兩個(gè)基礎(chǔ)的類是InputStream和OutputStream。C、在Java中,用于處理字符流的兩個(gè)基礎(chǔ)的類是Reader和Writer。D、按照流的方向分,可以分為輸入流(Input Stream)和輸出流(Output Stream)。3. 下面關(guān)于流的分類說法錯(cuò)誤的一項(xiàng)是( B )。A、為了處理Unicode字符串,定義了一系列的單獨(dú)類,這些類是從抽象類Reader和Writer繼承而來的。B、這些單獨(dú)類的操作均以單字節(jié)(16-bits)的Unicode字符為基礎(chǔ),而非雙字節(jié)的
3、字符為基礎(chǔ)。C、處理流是“處理流的流”,它用來處理其它的流,處理流又被稱為高級(jí)流(High Level Stream)。D、節(jié)點(diǎn)流又常常被稱為低級(jí)流(Low Level Stream)。4. 下面關(guān)于低級(jí)InputStream類(節(jié)點(diǎn)流)的說法有誤的一項(xiàng)是( D )。A、低級(jí)InputStream類(節(jié)點(diǎn)流)的ByteArrayInputStream方法為讀取字節(jié)數(shù)組設(shè)計(jì)的流,允許內(nèi)存的一個(gè)緩沖區(qū)被當(dāng)作InputStream使用。B、低級(jí)InputStream類(節(jié)點(diǎn)流)的PipedInputStream方法即管道流,產(chǎn)生一份數(shù)據(jù),能被寫入相應(yīng)的PipedOutputStream。C、低級(jí)In
4、putStream類(節(jié)點(diǎn)流)的FilterInputStream方法,它派生自InutStream,其功能在于將一個(gè)流連接到另一個(gè)流的末端,它將兩種流連接起來。D、低級(jí)InputStream類(節(jié)點(diǎn)流)的DataInputStream方法,它是FilterInputStream抽象類的子類,并且提供了用于從另一個(gè)流中讀取簡(jiǎn)單數(shù)據(jù)類型數(shù)據(jù)和String類型數(shù)據(jù)的讀取方法。5. 下列數(shù)據(jù)流中,屬于輸入流的一項(xiàng)是(C )。A、從網(wǎng)絡(luò)流向顯示器的數(shù)據(jù)流B、從內(nèi)存流向硬盤的數(shù)據(jù)流C、從鍵盤流向內(nèi)存的數(shù)據(jù)流D、從鍵盤流向顯示器的數(shù)據(jù)流6. 下列流中哪一個(gè)使用了緩沖區(qū)技術(shù)(B )。A、FileInputS
5、treamB、BufferedOutputStreamC、FileReaderD、DataOutputStream7. 能讀入字節(jié)數(shù)據(jù)進(jìn)行Java基本數(shù)據(jù)類型判斷過慮的類是( A)。A、DataInputStreamB、BufferedInputStreamC、FileReaderD、FileInputStream8. 使用哪一個(gè)類可以實(shí)現(xiàn)在文件的任意一個(gè)位置讀寫一個(gè)記錄( C )。A、BufferedInputStreamB、FileReaderC、RandomAccessFileD、FileWriter9. 在通常情況下,下列哪個(gè)類的對(duì)象可以作為BufferedReader類構(gòu)造方法的參數(shù)
6、( D)。A、FileInputStreamB、FileReaderC、PrintStreamD、InputStreamReader10. 下列關(guān)于流類和File類的說法中錯(cuò)誤的一項(xiàng)是( A)。A、File類可以修改文件內(nèi)容B、File類可以重命名文件C、流類不可以新建目錄D、流類可以修改文件內(nèi)容11. 若要?jiǎng)h除一個(gè)文件,應(yīng)該使用下列哪個(gè)類的實(shí)例( A )。A、FileB、RandomAccessFileC、FileReaderD、FileOutputStream2、 填空題:1. Java的輸入輸出流包括_字節(jié)流_、_字符流_、_文件流_、對(duì)象流_以及多線程之間通信的管道流_。2. 凡是從外
7、部設(shè)備流向中央處理器的數(shù)據(jù)流,稱之為_輸入_流;反之,稱之為_輸出_流。3. 所有的字節(jié)輸入流都從_InputStream_類繼承,所有的字節(jié)輸出流都從_OutputStream_類繼承。4. java.io包中的接口中,處理字節(jié)流的有_DataInput_接口和_DataOutput_接口。5. 與用于讀寫字節(jié)流的InputStream類和OutputStream類相對(duì)應(yīng),Java還提供了用于讀寫Unicode字符的字符流_Reader_類和_Writer_類。6. 對(duì)一般的計(jì)算機(jī)系統(tǒng),標(biāo)準(zhǔn)輸入通常是_鍵盤_,標(biāo)準(zhǔn)輸出通常是_顯示器_。7. System類的所有屬性和方法都是_Static_
8、類型的,即調(diào)用時(shí)需要以類名System為前綴。8. System.in只能從鍵盤讀取_二進(jìn)制_的數(shù)據(jù),而不能把這些比特信息轉(zhuǎn)換為整數(shù)、字符、浮點(diǎn)數(shù)或字符串等復(fù)雜數(shù)據(jù)類型的量。9. 在計(jì)算機(jī)系統(tǒng)中,需要長(zhǎng)期保留的數(shù)據(jù)是以_文件_的形式存放在磁盤、磁帶等外存儲(chǔ)設(shè)備中的。10. _目錄_是管理文件的特殊機(jī)制,同類文件保存在同一_目錄_下可以簡(jiǎn)化文件的管理,提高工作效率。11. Java語(yǔ)言的java.io包中的_File_類是專門用來管理磁盤文件和目錄的。調(diào)用_File_ 類的方法則可以完成對(duì)文件或目錄的常用管理操作,如創(chuàng)建文件或目錄、刪除文件或目錄、查看文件的有關(guān)信息等。12. File類也雖然在
9、java.io包中,但它不是InputStream或者OutputStream的子類,因?yàn)樗回?fù)責(zé)_數(shù)據(jù)的輸入和輸出_,而專門用來管理_文件還有目錄_。13. 如果希望從磁盤文件讀取數(shù)據(jù),或者將數(shù)據(jù)寫入文件,還需要使用文件輸入輸出流類_FileInputStream_和_FileOutputStream_。14. 利用_DataInputStream_類和_DataOutputStream_類提供的成員方法可以方便地從文件中讀寫不同類型的數(shù)據(jù)。3、 編程題:1. 編寫一個(gè)程序,其功能是將兩個(gè)文件的內(nèi)容合并到一個(gè)文件中。2. 編寫一個(gè)程序?qū)崿F(xiàn)以下功能: 產(chǎn)生5000個(gè)19999之間的隨機(jī)整數(shù),將
10、其存入文本文件a.txt中。從文件中讀取這5000個(gè)整數(shù),并計(jì)算其最大值、最小值和平均值并輸出結(jié)果。1.import java.io.BufferedReader;import java.io.File;import java.io.IOException;import java.io.InputStreamReader;public class t71 public static void main(String args) InputStreamReader isr = new InputStreamReader(System.in); BufferedReader br=new Buff
11、eredReader(isr); File fin1,fin2,fout; try System.out.println("Input the First input file name:"); fin1=new File(br.readLine(); if(!fin1.exists() System.out.println("not exist!"); System.exit(0); System.out.println("Input the second input file name:"); fin2=new File(br.r
12、eadLine(); if(!fin2.exists() System.out.println("not exist!"); System.exit(0); System.out.println("input the output file name:"); fout=new File(br.readLine(); if(new JoinFiles(fin1,fin2,fout)!=null) System.out.println("success!"); else System.out.println("fail"
13、;); catch(IOException e)e.printStackTrace();import java.io.File;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;public class JoinFiles JoinFiles(File fin1,File fin2,File fout) throws IOException FileReader fr1=new FileReader(fin1); FileReader fr2 = new FileReader(fin2)
14、;FileWriter fw = new FileWriter(fout);int ch;while(ch=fr1.read()!=-1)fw.write(ch);while(ch=fr2.read() != -1)fw.write(ch);fr1.close();fr2.close();fw.close(); 2.import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFound
15、Exception;import java.io.FileOutputStream;import org.omg.Messaging.SyncScopeHelper;public class t72 static int max,min,sum=0;static int a=new int 5000;public static void main(String args)File f=new File("a.txt");if(f=null)System.out.println("Can't create the file");System.exi
16、t(0);genRandom(f);calculate(f);static void genRandom(File f)tryFileOutputStream fos = new FileOutputStream(f);DataOutputStream dos = new DataOutputStream(fos);for(int i=0; i<5000; i+)dos.writeInt(int)(Math.random()*10000);dos.close();catch(FileNotFoundException e)e.printStackTrace();catch(Excepti
17、on e)e.printStackTrace();static void calculate(File f)tryFileInputStream fis = new FileInputStream(f);DataInputStream dis = new DataInputStream(fis);int i;for(i=0; i<5000; i+)ai = dis.readInt();dis.close();max = a0;min = a0;for(i=0; i<5000; i+)if(max <ai) max = ai;if(min>ai) min = ai;sum
18、 += ai;catch(FileNotFoundException e)e.printStackTrace();catch(Exception e)e.printStackTrace();int average = sum/5000;System.out.println("max = "+max+"tmin="+min);System.out.println("sum = "+sum+"taverage="+average);答案:1、 選擇題:15: CABDB610:BCBAC1113:D AA2、 填空題:
19、1. 文檔對(duì)象模型2. 字節(jié)流、字符流、文件流、對(duì)象流、管道流3. 輸入、輸出4. InputStream、OutputStream5. DataInput、DataOutput6. Reader、Writer7. 鍵盤、顯示器8. Static9. 二進(jìn)制10. 文件11. 目錄、目錄12. File、File13. 數(shù)據(jù)的輸入輸出、文件和目錄14. FileInputStream、FileOutputStream15. DataInputStream、DataOutputStream16. Object、DataInput、DataOutput3、 簡(jiǎn)答題:1. 答:數(shù)據(jù)存儲(chǔ):XML和數(shù)據(jù)
20、庫(kù)一樣,都可以實(shí)現(xiàn)數(shù)據(jù)的持久化存儲(chǔ)。兩者相比,數(shù)據(jù)庫(kù)提供了更強(qiáng)有力的數(shù)據(jù)存儲(chǔ)和分析能力,XML僅僅是存儲(chǔ)數(shù)據(jù),XML與其它數(shù)據(jù)表現(xiàn)形式最大的不同是它極其簡(jiǎn)單。數(shù)據(jù)交換:在實(shí)際應(yīng)用中,由于各個(gè)計(jì)算機(jī)所使用的操作系統(tǒng),數(shù)據(jù)庫(kù)不同,因此數(shù)據(jù)之間的交換向來是頭疼的事情,但可以使用XML交換數(shù)據(jù)來解決這個(gè)問題。例如,可以將數(shù)據(jù)庫(kù)A中的數(shù)據(jù)轉(zhuǎn)換成標(biāo)準(zhǔn)的XML文件,然后數(shù)據(jù)庫(kù)B再將該標(biāo)準(zhǔn)的XML文件轉(zhuǎn)換成適合自己數(shù)據(jù)要求的數(shù)據(jù),以便達(dá)到交換數(shù)據(jù)的目的。數(shù)據(jù)配置:許多應(yīng)用都將配置數(shù)據(jù)存儲(chǔ)在XML文件中。使用XML配制文件可讀性強(qiáng),靈活性高,不用像其它應(yīng)用那樣要經(jīng)過重新編譯才能修改和維護(hù)應(yīng)用。2. 答:DOM解
21、析的優(yōu)點(diǎn):整個(gè)文檔樹在內(nèi)存中,便于操作;支持刪除、修改、重新排列等多種功能;缺點(diǎn):將整個(gè)文檔調(diào)入內(nèi)存(包括無用的節(jié)點(diǎn)),浪費(fèi)時(shí)間和空間;使用場(chǎng)合:一旦解析了文檔還需多次訪問這些數(shù)據(jù);硬件資源充足(內(nèi)存、CPU)。3. 答:SAX解析XML優(yōu)點(diǎn):不用事先調(diào)入整個(gè)文檔,占用資源少;SAX解析器代碼比DOM解析器代碼小,適于Applet下載。缺點(diǎn):不是持久的;事件過后,若沒保存數(shù)據(jù),那么數(shù)據(jù)就丟了;無狀態(tài)性;從事件中只能得到文本,但不知該文本屬于哪個(gè)元素;使用場(chǎng)合:Applet;只需XML文檔的少量?jī)?nèi)容,很少回頭訪問;機(jī)器內(nèi)存少。4、 編程題:1. 答:編程分析】本題主要考察對(duì)文件流類FileRea
22、der和FileWriter的使用方法,實(shí)現(xiàn)從文件中讀取數(shù)據(jù),以及向文件中輸入數(shù)據(jù)。第一步:采用面向字符的文件流讀出文件內(nèi)容,使用FileReader類的read()方法,寫文件內(nèi)容使用FileWriter類的write()方法。第二步:通過鍵盤方式輸入要合并的兩個(gè)源文件的文件名以及合并后的新文件名。第三步:將兩個(gè)源文件內(nèi)容分別讀出并寫入到目標(biāo)文件中?!緟⒖汲绦颉縤mport java.io.*;public class X8_3_2 public static void main(String args) InputStreamReader isr = new InputStreamRead
23、er(System.in);BufferedReader br = new BufferedReader(isr);File fin1, fin2, fout;trySystem.out.print("Input the first input file name: ");fin1 = new File(br.readLine();if(!fin1.exists()System.out.println("The file doesn't exist! ");System.exit(0);System.out.print("Input t
24、he second input file name: ");fin2 = new File(br.readLine();if(!fin2.exists()System.out.println("The file doesn't exist! ");System.exit(0);System.out.print("Input the output file name: ");fout = new File(br.readLine();if(new JoinFiles(fin1,fin2,fout) != null)/ 合并文件System
25、.out.println("Successful in joining files!");elseSystem.out.println("fail in joining files!");catch(IOException e)e.printStackTrace();class JoinFilesJoinFiles(File fin1, File fin2, File fout) throws IOExceptionFileReader fr1 = new FileReader(fin1);FileReader fr2 = new FileReader(
26、fin2);FileWriter fw = new FileWriter(fout);int ch;while(ch=fr1.read() != -1)fw.write(ch);while(ch=fr2.read() != -1)fw.write(ch);fr1.close();fr2.close();fw.close();【運(yùn)行結(jié)果】Input the first input file name: f1.txtInput the second input file name: f2.txtInput the output file name: fout.txtSuccessful in jo
27、ining files!2. 答:【編程分析】本題主要考察利用FileOutputStream、DataOutputStream、FileInputStream、DataInputStream等類實(shí)現(xiàn)對(duì)文件的操作。第一步:產(chǎn)生5000個(gè)19999之間的隨機(jī)整數(shù),將其存入文本文件a.txt中,本參考程序利用方法“genRandom(File f)”來實(shí)現(xiàn),本方法使用了FileOutputStream和DataOutputStream兩個(gè)類。第二步:將文件中的數(shù)據(jù)取出進(jìn)行計(jì)算最大值、最小值、平均值以及求和,本參考程序利用方法“calculate(File f)”來實(shí)現(xiàn),本方法使用了FileInputStream和DataInputStream兩個(gè)類?!緟⒖汲绦颉縤mport java.io.*;public class X8_3_3 static int max, min, sum = 0;static int a = new int5000;public static void main(String args) File f = new File("a.txt");if(f = null)System.out.println("Can't create the file");System.exit(0)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度緊急避難場(chǎng)所標(biāo)示牌設(shè)計(jì)與施工合同3篇
- 2024物業(yè)服務(wù)合同補(bǔ)充:社區(qū)物業(yè)智能化改造協(xié)議3篇
- 2024水廠給排水設(shè)備采購(gòu)與維護(hù)服務(wù)合同
- 腦梗死健康宣教
- 2024年水利樞紐建設(shè)勞務(wù)承包合同
- 專業(yè)個(gè)人道路運(yùn)輸協(xié)議樣式2024
- 2024年財(cái)產(chǎn)質(zhì)押擔(dān)保合同模板6篇
- 福建省南平市萬(wàn)安中學(xué)2022年高一生物下學(xué)期期末試題含解析
- 色彩之旅模板
- 青春期健康守護(hù)
- 制作課件wps教學(xué)課件
- MCN機(jī)構(gòu)簽約合同范本
- 解讀智能問答系統(tǒng)研究
- 2024年露天煤礦地質(zhì)勘查服務(wù)協(xié)議版
- 部編版四年級(jí)上冊(cè)道德與法治期末測(cè)試卷
- DB11T 1805-2020 實(shí)驗(yàn)動(dòng)物 病理學(xué)診斷規(guī)范
- 人教版小學(xué)六年級(jí)下冊(cè)音樂教案全冊(cè)
- 2024年資格考試-WSET二級(jí)認(rèn)證考試近5年真題附答案
- 個(gè)體工商營(yíng)業(yè)執(zhí)照變更委托書
- 2024版【人教精通版】小學(xué)英語(yǔ)六年級(jí)下冊(cè)全冊(cè)教案
- 人教版歷史2024年第二學(xué)期期末考試七年級(jí)歷史試卷(含答案)
評(píng)論
0/150
提交評(píng)論