Java7課后習(xí)題_第1頁
Java7課后習(xí)題_第2頁
Java7課后習(xí)題_第3頁
Java7課后習(xí)題_第4頁
Java7課后習(xí)題_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、Java07課后習(xí)題1、 選擇題:1. 下面關(guān)于訪問文件和目錄說法錯誤的一項(xiàng)是(C)。A、File類雖然它不能訪問文件內(nèi)容,卻可以用來進(jìn)行文件的相關(guān)操作,它描述的是文件本身的屬性。B、File類如果需要訪問文件本身,則需要使用輸入/輸出流。C、File類可以使用文件路徑字符串來創(chuàng)建File實(shí)例,該文件路徑字符串可以是絕對路徑,但不可以是相對路徑,默認(rèn)情況下,程序會根據(jù)用戶的工作路徑來解釋相對路徑,通常就是Java虛擬機(jī)所在的路徑。(也可以是相對路徑)D、將路徑當(dāng)作File類來處理,路徑名中除了最后一個之外每個字段都表示一個目錄;最后一個字段可能表示一個目錄或文件名。2. 下面關(guān)于流的描述有誤的

2、一項(xiàng)是( A )。A、流是指一連串流動的字符,是以先進(jìn)后出的方式發(fā)送信息的通道。B、在Java中,處理字節(jié)流的兩個基礎(chǔ)的類是InputStream和OutputStream。C、在Java中,用于處理字符流的兩個基礎(chǔ)的類是Reader和Writer。D、按照流的方向分,可以分為輸入流(Input Stream)和輸出流(Output Stream)。3. 下面關(guān)于流的分類說法錯誤的一項(xiàng)是( B )。A、為了處理Unicode字符串,定義了一系列的單獨(dú)類,這些類是從抽象類Reader和Writer繼承而來的。B、這些單獨(dú)類的操作均以單字節(jié)(16-bits)的Unicode字符為基礎(chǔ),而非雙字節(jié)的

3、字符為基礎(chǔ)。C、處理流是“處理流的流”,它用來處理其它的流,處理流又被稱為高級流(High Level Stream)。D、節(jié)點(diǎn)流又常常被稱為低級流(Low Level Stream)。4. 下面關(guān)于低級InputStream類(節(jié)點(diǎn)流)的說法有誤的一項(xiàng)是( D )。A、低級InputStream類(節(jié)點(diǎn)流)的ByteArrayInputStream方法為讀取字節(jié)數(shù)組設(shè)計的流,允許內(nèi)存的一個緩沖區(qū)被當(dāng)作InputStream使用。B、低級InputStream類(節(jié)點(diǎn)流)的PipedInputStream方法即管道流,產(chǎn)生一份數(shù)據(jù),能被寫入相應(yīng)的PipedOutputStream。C、低級In

4、putStream類(節(jié)點(diǎn)流)的FilterInputStream方法,它派生自InutStream,其功能在于將一個流連接到另一個流的末端,它將兩種流連接起來。D、低級InputStream類(節(jié)點(diǎn)流)的DataInputStream方法,它是FilterInputStream抽象類的子類,并且提供了用于從另一個流中讀取簡單數(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. 下列流中哪一個使用了緩沖區(qū)技術(shù)(B )。A、FileInputS

5、treamB、BufferedOutputStreamC、FileReaderD、DataOutputStream7. 能讀入字節(jié)數(shù)據(jù)進(jìn)行Java基本數(shù)據(jù)類型判斷過慮的類是( A)。A、DataInputStreamB、BufferedInputStreamC、FileReaderD、FileInputStream8. 使用哪一個類可以實(shí)現(xiàn)在文件的任意一個位置讀寫一個記錄( C )。A、BufferedInputStreamB、FileReaderC、RandomAccessFileD、FileWriter9. 在通常情況下,下列哪個類的對象可以作為BufferedReader類構(gòu)造方法的參數(shù)

6、( D)。A、FileInputStreamB、FileReaderC、PrintStreamD、InputStreamReader10. 下列關(guān)于流類和File類的說法中錯誤的一項(xiàng)是( A)。A、File類可以修改文件內(nèi)容B、File類可以重命名文件C、流類不可以新建目錄D、流類可以修改文件內(nèi)容11. 若要刪除一個文件,應(yīng)該使用下列哪個類的實(shí)例( A )。A、FileB、RandomAccessFileC、FileReaderD、FileOutputStream2、 填空題:1. Java的輸入輸出流包括_字節(jié)流_、_字符流_、_文件流_、對象流_以及多線程之間通信的管道流_。2. 凡是從外

7、部設(shè)備流向中央處理器的數(shù)據(jù)流,稱之為_輸入_流;反之,稱之為_輸出_流。3. 所有的字節(jié)輸入流都從_InputStream_類繼承,所有的字節(jié)輸出流都從_OutputStream_類繼承。4. java.io包中的接口中,處理字節(jié)流的有_DataInput_接口和_DataOutput_接口。5. 與用于讀寫字節(jié)流的InputStream類和OutputStream類相對應(yīng),Java還提供了用于讀寫Unicode字符的字符流_Reader_類和_Writer_類。6. 對一般的計算機(jī)系統(tǒng),標(biāo)準(zhǔn)輸入通常是_鍵盤_,標(biāo)準(zhǔn)輸出通常是_顯示器_。7. System類的所有屬性和方法都是_Static_

8、類型的,即調(diào)用時需要以類名System為前綴。8. System.in只能從鍵盤讀取_二進(jìn)制_的數(shù)據(jù),而不能把這些比特信息轉(zhuǎn)換為整數(shù)、字符、浮點(diǎn)數(shù)或字符串等復(fù)雜數(shù)據(jù)類型的量。9. 在計算機(jī)系統(tǒng)中,需要長期保留的數(shù)據(jù)是以_文件_的形式存放在磁盤、磁帶等外存儲設(shè)備中的。10. _目錄_是管理文件的特殊機(jī)制,同類文件保存在同一_目錄_下可以簡化文件的管理,提高工作效率。11. Java語言的java.io包中的_File_類是專門用來管理磁盤文件和目錄的。調(diào)用_File_ 類的方法則可以完成對文件或目錄的常用管理操作,如創(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. 編寫一個程序,其功能是將兩個文件的內(nèi)容合并到一個文件中。2. 編寫一個程序?qū)崿F(xiàn)以下功能: 產(chǎn)生5000個19999之間的隨機(jī)整數(shù),將

10、其存入文本文件a.txt中。從文件中讀取這5000個整數(shù),并計算其最大值、最小值和平均值并輸出結(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. 文檔對象模型2. 字節(jié)流、字符流、文件流、對象流、管道流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、 簡答題:1. 答:數(shù)據(jù)存儲:XML和數(shù)據(jù)

20、庫一樣,都可以實(shí)現(xiàn)數(shù)據(jù)的持久化存儲。兩者相比,數(shù)據(jù)庫提供了更強(qiáng)有力的數(shù)據(jù)存儲和分析能力,XML僅僅是存儲數(shù)據(jù),XML與其它數(shù)據(jù)表現(xiàn)形式最大的不同是它極其簡單。數(shù)據(jù)交換:在實(shí)際應(yīng)用中,由于各個計算機(jī)所使用的操作系統(tǒng),數(shù)據(jù)庫不同,因此數(shù)據(jù)之間的交換向來是頭疼的事情,但可以使用XML交換數(shù)據(jù)來解決這個問題。例如,可以將數(shù)據(jù)庫A中的數(shù)據(jù)轉(zhuǎn)換成標(biāo)準(zhǔn)的XML文件,然后數(shù)據(jù)庫B再將該標(biāo)準(zhǔn)的XML文件轉(zhuǎn)換成適合自己數(shù)據(jù)要求的數(shù)據(jù),以便達(dá)到交換數(shù)據(jù)的目的。數(shù)據(jù)配置:許多應(yīng)用都將配置數(shù)據(jù)存儲在XML文件中。使用XML配制文件可讀性強(qiáng),靈活性高,不用像其它應(yīng)用那樣要經(jīng)過重新編譯才能修改和維護(hù)應(yīng)用。2. 答:DOM解

21、析的優(yōu)點(diǎn):整個文檔樹在內(nèi)存中,便于操作;支持刪除、修改、重新排列等多種功能;缺點(diǎn):將整個文檔調(diào)入內(nèi)存(包括無用的節(jié)點(diǎn)),浪費(fèi)時間和空間;使用場合:一旦解析了文檔還需多次訪問這些數(shù)據(jù);硬件資源充足(內(nèi)存、CPU)。3. 答:SAX解析XML優(yōu)點(diǎn):不用事先調(diào)入整個文檔,占用資源少;SAX解析器代碼比DOM解析器代碼小,適于Applet下載。缺點(diǎn):不是持久的;事件過后,若沒保存數(shù)據(jù),那么數(shù)據(jù)就丟了;無狀態(tài)性;從事件中只能得到文本,但不知該文本屬于哪個元素;使用場合:Applet;只需XML文檔的少量內(nèi)容,很少回頭訪問;機(jī)器內(nèi)存少。4、 編程題:1. 答:編程分析】本題主要考察對文件流類FileRea

22、der和FileWriter的使用方法,實(shí)現(xiàn)從文件中讀取數(shù)據(jù),以及向文件中輸入數(shù)據(jù)。第一步:采用面向字符的文件流讀出文件內(nèi)容,使用FileReader類的read()方法,寫文件內(nèi)容使用FileWriter類的write()方法。第二步:通過鍵盤方式輸入要合并的兩個源文件的文件名以及合并后的新文件名。第三步:將兩個源文件內(nèi)容分別讀出并寫入到目標(biāo)文件中。【參考程序】import 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)對文件的操作。第一步:產(chǎn)生5000個19999之間的隨機(jī)整數(shù),將其存入文本文件a.txt中,本參考程序利用方法“genRandom(File f)”來實(shí)現(xiàn),本方法使用了FileOutputStream和DataOutputStream兩個類。第二步:將文件中的數(shù)據(jù)取出進(jìn)行計算最大值、最小值、平均值以及求和,本參考程序利用方法“calculate(File f)”來實(shí)現(xiàn),本方法使用了FileInputStream和DataInputStream兩個類。【參考程序】import 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等.壓縮文件請下載最新的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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論