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

下載本文檔

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

文檔簡介

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

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

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

4、OutputStream。C、低級InputStream類(節(jié)點流)的FilterInputStream方法,它派生自InutStream,其功能在于將一個流連接到另一個流的末端,它將兩種流連接起來。D、低級InputStream類(節(jié)點流)的DataInputStream方法,它是FilterInputStream抽象類的子類,并且提供了用于從另一個流中讀取簡單數(shù)據(jù)類型數(shù)據(jù)和String類型數(shù)據(jù)的讀取方法。5. 下列數(shù)據(jù)流中,屬于輸入流的一項是(C )。A、從網(wǎng)絡流向顯示器的數(shù)據(jù)流B、從內(nèi)存流向硬盤的數(shù)據(jù)流C、從鍵盤流向內(nèi)存的數(shù)據(jù)流D、從鍵盤流向顯示器的數(shù)據(jù)流6. 下列流中哪一個使用了緩沖區(qū)

5、技術(B )。A、FileInputStreamB、BufferedOutputStreamC、FileReaderD、DataOutputStream7. 能讀入字節(jié)數(shù)據(jù)進行Java基本數(shù)據(jù)類型判斷過慮的類是( A)。A、DataInputStreamB、BufferedInputStream10 / 11C、FileReaderD、FileInputStream8. 使用哪一個類可以實現(xiàn)在文件的任意一個位置讀寫一個記錄( C )。A、BufferedInputStreamB、FileReaderC、RandomAccessFileD、FileWriter9. 在通常情況下,下列哪個類的對象

6、可以作為BufferedReader類構(gòu)造方法的參數(shù)( D)。A、FileInputStreamB、FileReaderC、PrintStreamD、InputStreamReader10. 下列關于流類和File類的說法中錯誤的一項是( A)。A、File類可以修改文件內(nèi)容B、File類可以重命名文件C、流類不可以新建目錄D、流類可以修改文件內(nèi)容11. 若要刪除一個文件,應該使用下列哪個類的實例( A )。A、FileB、RandomAccessFileC、FileReaderD、FileOutputStream2、 填空題:1. Java的輸入輸出流包括_字節(jié)流_、_字符流_、_文件流_、

7、對象流_以及多線程之間通信的管道流_。2. 凡是從外部設備流向中央處理器的數(shù)據(jù)流,稱之為_輸入_流;反之,稱之為_輸出_流。3. 所有的字節(jié)輸入流都從_InputStream_類繼承,所有的字節(jié)輸出流都從_OutputStream_類繼承。4. java.io包中的接口中,處理字節(jié)流的有_DataInput_接口和_DataOutput_接口。5. 與用于讀寫字節(jié)流的InputStream類和OutputStream類相對應,Java還提供了用于讀寫Unicode字符的字符流_Reader_類和_Writer_類。6. 對一般的計算機系統(tǒng),標準輸入通常是_鍵盤_,標準輸出通常是_顯示器_。7.

8、 System類的所有屬性和方法都是_Static_類型的,即調(diào)用時需要以類名System為前綴。8. System.in只能從鍵盤讀取_二進制_的數(shù)據(jù),而不能把這些比特信息轉(zhuǎn)換為整數(shù)、字符、浮點數(shù)或字符串等復雜數(shù)據(jù)類型的量。9. 在計算機系統(tǒng)中,需要長期保留的數(shù)據(jù)是以_文件_的形式存放在磁盤、磁帶等外存儲設備中的。10. _目錄_是管理文件的特殊機制,同類文件保存在同一_目錄_下可以簡化文件的管理,提高工作效率。11. Java語言的java.io包中的_File_類是專門用來管理磁盤文件和目錄的。調(diào)用_File_ 類的方法則可以完成對文件或目錄的常用管理操作,如創(chuàng)建文件或目錄、刪除文件或目

9、錄、查看文件的有關信息等。12. File類也雖然在java.io包中,但它不是InputStream或者OutputStream的子類,因為它不負責_數(shù)據(jù)的輸入和輸出_,而專門用來管理_文件還有目錄_。13. 如果希望從磁盤文件讀取數(shù)據(jù),或者將數(shù)據(jù)寫入文件,還需要使用文件輸入輸出流類_FileInputStream_和_FileOutputStream_。14. 利用_DataInputStream_類和_DataOutputStream_類提供的成員方法可以方便地從文件中讀寫不同類型的數(shù)據(jù)。3、 編程題:1. 編寫一個程序,其功能是將兩個文件的內(nèi)容合并到一個文件中。2. 編寫一個程序?qū)崿F(xiàn)以

10、下功能: 產(chǎn)生5000個19999之間的隨機整數(shù),將其存入文本文件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);

11、BufferedReader br=new BufferedReader(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.readLine();

12、 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); catch(IOException e)e.printStackTrace();import java.io

13、.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);FileWriter fw = new FileWriter(fout);int ch;while(ch=fr1.

14、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.FileNotFoundException;import java.io.FileOutputStream;import org.omg.M

15、essaging.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(Cant create the file);System.exit(0);genRandom(f);calculate(f);static void genRandom(File f)tryFileOutputStream fos = n

16、ew FileOutputStream(f);DataOutputStream dos = new DataOutputStream(fos);for(int i=0; i5000; i+)dos.writeInt(int)(Math.random()*10000);dos.close();catch(FileNotFoundException e)e.printStackTrace();catch(Exception e)e.printStackTrace();static void calculate(File f)tryFileInputStream fis = new FileInpu

17、tStream(f);DataInputStream dis = new DataInputStream(fis);int i;for(i=0; i5000; i+)ai = dis.readInt();dis.close();max = a0;min = a0;for(i=0; i5000; i+)if(max ai) min = ai;sum += ai;catch(FileNotFoundException e)e.printStackTrace();catch(Exception e)e.printStackTrace();int average = sum/5000;System.o

18、ut.println(max = +max+tmin=+min);System.out.println(sum = +sum+taverage=+average);答案:1、 選擇題:15: CABDB610:BCBAC1113:D AA2、 填空題:1. 文檔對象模型2. 字節(jié)流、字符流、文件流、對象流、管道流3. 輸入、輸出4. InputStream、OutputStream5. DataInput、DataOutput6. Reader、Writer7. 鍵盤、顯示器8. Static9. 二進制10. 文件11. 目錄、目錄12. File、File13. 數(shù)據(jù)的輸入輸出、文件和目錄

19、14. FileInputStream、FileOutputStream15. DataInputStream、DataOutputStream16. Object、DataInput、DataOutput3、 簡答題:1. 答:數(shù)據(jù)存儲:XML和數(shù)據(jù)庫一樣,都可以實現(xiàn)數(shù)據(jù)的持久化存儲。兩者相比,數(shù)據(jù)庫提供了更強有力的數(shù)據(jù)存儲和分析能力,XML僅僅是存儲數(shù)據(jù),XML與其它數(shù)據(jù)表現(xiàn)形式最大的不同是它極其簡單。數(shù)據(jù)交換:在實際應用中,由于各個計算機所使用的操作系統(tǒng),數(shù)據(jù)庫不同,因此數(shù)據(jù)之間的交換向來是頭疼的事情,但可以使用XML交換數(shù)據(jù)來解決這個問題。例如,可以將數(shù)據(jù)庫A中的數(shù)據(jù)轉(zhuǎn)換成標準的XML

20、文件,然后數(shù)據(jù)庫B再將該標準的XML文件轉(zhuǎn)換成適合自己數(shù)據(jù)要求的數(shù)據(jù),以便達到交換數(shù)據(jù)的目的。數(shù)據(jù)配置:許多應用都將配置數(shù)據(jù)存儲在XML文件中。使用XML配制文件可讀性強,靈活性高,不用像其它應用那樣要經(jīng)過重新編譯才能修改和維護應用。2. 答:DOM解析的優(yōu)點:整個文檔樹在內(nèi)存中,便于操作;支持刪除、修改、重新排列等多種功能;缺點:將整個文檔調(diào)入內(nèi)存(包括無用的節(jié)點),浪費時間和空間;使用場合:一旦解析了文檔還需多次訪問這些數(shù)據(jù);硬件資源充足(內(nèi)存、CPU)。3. 答:SAX解析XML優(yōu)點:不用事先調(diào)入整個文檔,占用資源少;SAX解析器代碼比DOM解析器代碼小,適于Applet下載。缺點:不是

21、持久的;事件過后,若沒保存數(shù)據(jù),那么數(shù)據(jù)就丟了;無狀態(tài)性;從事件中只能得到文本,但不知該文本屬于哪個元素;使用場合:Applet;只需XML文檔的少量內(nèi)容,很少回頭訪問;機器內(nèi)存少。4、 編程題:1. 答:編程分析】本題主要考察對文件流類FileReader和FileWriter的使用方法,實現(xiàn)從文件中讀取數(shù)據(jù),以及向文件中輸入數(shù)據(jù)。第一步:采用面向字符的文件流讀出文件內(nèi)容,使用FileReader類的read()方法,寫文件內(nèi)容使用FileWriter類的write()方法。第二步:通過鍵盤方式輸入要合并的兩個源文件的文件名以及合并后的新文件名。第三步:將兩個源文件內(nèi)容分別讀出并寫入到目標文

22、件中。【參考程序】import java.io.*;public class X8_3_2 public static void main(String args) InputStreamReader isr = new InputStreamReader(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.

23、exists()System.out.println(The file doesnt exist! );System.exit(0);System.out.print(Input the second input file name: );fin2 = new File(br.readLine();if(!fin2.exists()System.out.println(The file doesnt exist! );System.exit(0);System.out.print(Input the output file name: );fout = new File(br.readLine

24、();if(new JoinFiles(fin1,fin2,fout) != null)/ 合并文件System.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);

25、FileReader fr2 = new FileReader(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();【運行結(jié)果】Input the first input file name: f1.txtInput the second input file name: f2.txtInput the output fil

26、e name: fout.txtSuccessful in joining files!2. 答:【編程分析】本題主要考察利用FileOutputStream、DataOutputStream、FileInputStream、DataInputStream等類實現(xiàn)對文件的操作。第一步:產(chǎn)生5000個19999之間的隨機整數(shù),將其存入文本文件a.txt中,本參考程序利用方法“genRandom(File f)”來實現(xiàn),本方法使用了FileOutputStream和DataOutputStream兩個類。第二步:將文件中的數(shù)據(jù)取出進行計算最大值、最小值、平均值以及求和,本參考程序利用方法“calculate(File f)”來實現(xiàn),本方法使用了FileInputStream和DataInputStream兩個類?!緟⒖汲绦颉縤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(Cant creat

溫馨提示

  • 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

提交評論