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

下載本文檔

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

文檔簡(jiǎn)介

1、Java07 課后習(xí)題、 選擇題: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、。2. 下面關(guān)于流的描述有誤的一項(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ú)類的操作

3、均以單字節(jié) ( 16-bits )的 Unicode 字符為基礎(chǔ), 而非雙字節(jié)的字 符為基礎(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)流) 的

4、 PipedInputStream 方法即管道流, 產(chǎn)生一份數(shù)據(jù), 能被寫入相應(yīng)的 PipedOutputStream 。C、低級(jí) InputStream 類(節(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ù)的讀取方法。C )。B、從內(nèi)存流向硬盤的數(shù)據(jù)流D、從鍵盤流向顯示器的

5、數(shù)據(jù)流 B )。 B、BufferedOutputStream5. 下列數(shù)據(jù)流中,屬于輸入流的一項(xiàng)是( A、從網(wǎng)絡(luò)流向顯示器的數(shù)據(jù)流 C、從鍵盤流向內(nèi)存的數(shù)據(jù)流6. 下列流中哪一個(gè)使用了緩沖區(qū)技術(shù)( A、 FileInputStreamC、 FileReaderD、 DataOutputStream7. 能讀入字節(jié)數(shù)據(jù)進(jìn)行 Java 基本數(shù)據(jù)類型判斷過慮的類是( A )。 A、 DataInputStreamB、 BufferedInputStream8.9.10.11.二、1.2.3.4.5.6.7.8.9.10.11.12.13.14.C、 FileReaderD、 FileInputSt

6、ream使用哪一個(gè)類可以實(shí)現(xiàn)在文件的任意一個(gè)位置讀寫一個(gè)記錄( C )。A、 BufferedInputStreamB、C、 RandomAccessFileD、在通常情況下,下列哪個(gè)類的對(duì)象可以作為 ( D )。A、 FileInputStreamB、C、 PrintStreamD、FileReaderFileWriterBufferedReader 類構(gòu)造方法的參數(shù)FileReaderInputStreamReader下列關(guān)于流類和 File 類的說法中錯(cuò)誤的一項(xiàng)是( A )。 A、 File 類可以修改文件內(nèi)容B、 File 類可以重命名文件C、流類不可以新建目錄D、流類可以修改文件內(nèi)容

7、若要?jiǎng)h除一個(gè)文件,應(yīng)該使用下列哪個(gè)類的實(shí)例( A )。A、FileC、 FileReaderB、 RandomAccessFileD、 FileOutputStream填空題:Java 的輸入輸出流包括 _ 字節(jié)流 _、_字符流 _ 、_文件流 _、對(duì)象流以及多線程之間通信的管道流 _。凡是從外部設(shè)備流向中央處理器的數(shù)據(jù)流,稱之為_輸入 流;反之,稱之為 _輸出流。所有的 字節(jié)輸 入流都 從_InputStream 類繼承,所 有的字 節(jié)輸 出流都 從_OutputStream 類繼承。java.io 包 中 的 接 口 中 , 處 理 字 節(jié) 流 的 有 _DataInput 接 口 和_D

8、ataOutput 接口。與用于讀寫字節(jié)流的 InputStream 類和 OutputStream 類相對(duì)應(yīng), Java 還提供了用于讀 寫 Unicode 字符的字符流 _Reader 類和 _Writer 類。對(duì)一般的計(jì)算機(jī)系統(tǒng), 標(biāo)準(zhǔn)輸入通常是 _鍵盤,標(biāo)準(zhǔn)輸出通常是 _顯示器 。System 類的所有屬性和方法都是 _Static 類型的,即調(diào)用時(shí)需要以類名 System為前綴。System.in 只能從鍵盤讀取 _二進(jìn)制 的數(shù)據(jù),而不能把這些比特信息轉(zhuǎn)換為整數(shù)、字符、浮點(diǎn)數(shù)或字符串等復(fù)雜數(shù)據(jù)類型的量。在計(jì)算機(jī)系統(tǒng)中, 需要長(zhǎng)期保留的數(shù)據(jù)是以 _文件 的形式存放在磁盤、 磁帶等外存儲(chǔ)

9、設(shè)備中的。_目錄 是管理文件的特殊機(jī)制, 同類文件保存在同一 _目錄 下可以簡(jiǎn)化文件的管理,提高工作效率。Java 語言的 java.io 包中的 _File 類是專門用來管理磁盤文件和目錄的。調(diào)用_File 類的方法則可以完成對(duì)文件或目錄的常用管理操作,如創(chuàng)建文件或目錄、刪除文件或目錄、查看文件的有關(guān)信息等。File 類也雖然在 java.io 包中, 但它不是 InputStream 或者 OutputStream 的子類, 因 為它不負(fù)責(zé) _數(shù)據(jù)的輸入和輸出 ,而專門用來管理 _文件還有目錄 。如果希望從磁盤文件讀取數(shù)據(jù),或者將數(shù)據(jù)寫入文件,還需要使用文件輸入輸出流類 _FileInpu

10、tStream 和 _FileOutputStream 。利用 _DataInputStream 類和 DataOutputStream 類提供的成員方法可以 方便地從文件中讀寫不同類型的數(shù)據(jù)。三、 編程題:1. 編寫一個(gè)程序,其功能是將兩個(gè)文件的內(nèi)容合并到一個(gè)文件中。2. 編寫一個(gè)程序?qū)崿F(xiàn)以下功能:產(chǎn)生 5000個(gè) 1 9999 之間的隨機(jī)整數(shù),將其存入文本文件a.txt 中。從文件中讀取這 5000 個(gè)整數(shù),并計(jì)算其最大值、最小值和平均值并輸出結(jié)果。1.import java.io.BufferedReader;import java.io.File;import java.io.IOEx

11、ception;import java.io.InputStreamReader;public class t71 public static void main(String args) InputStreamReader isr = new InputStreamReader(System.in);BufferedReader br=new BufferedReader(isr);File fin1,fin2,fout;trySystem.out.println(Input the First input file name:); fin1=new File(br.readLine();i

12、f(!fin1.exists()System.out.println(not exist!); System.exit(0);System.out.println(Input the second input file name:); fin2=new File(br.readLine();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 JoinF

13、iles(fin1,fin2,fout)!=null)System.out.println(success!);elseSystem.out.println(fail);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 IOExc

14、eption FileReader fr1=new FileReader(fin1); 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();2.import java.io.DataInputStream;import java.io.DataOutp

15、utStream;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;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

16、(f=null)System.out.println(Cant create the file); System.exit(0); genRandom(f); calculate(f);static void genRandom(File f)tryFileOutputStream fos = new FileOutputStream(f); DataOutputStream dos = new DataOutputStream(fos); for(int i=0; i5000; i+)dos.writeInt(int)(Math.random()*10000);dos.close();cat

17、ch(FileNotFoundException e)e.printStackTrace(); catch(Exception e)e.printStackTrace();static void calculate(File f)tryFileInputStream fis = new FileInputStream(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

18、; i+) if(max ai) min = ai; sum += 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);答案:一、選擇題:15: CABDB610:BCBAC 1113:D AA二、填空題:1. 文檔對(duì)象模型2. 字節(jié)流、

19、字符流、文件流、對(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 、 DataOutput三、簡(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)過重新編譯才能修改

21、和維護(hù)應(yīng)用。2. 答: DOM解析的優(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)存少。四、 編程題

22、:答:編程分析】本題主要考察對(duì)文件流類 FileReader 和 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) Inpu

23、tStreamReader 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.exists()System.out.println(The file doesnt exist! );System.exit(0);System.out.print(I

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

25、n 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(fin2);FileWriter fw = new FileWriter(fout);int c

26、h;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 joining files!2. 答 :【 編 程 分 析 】 本 題 主 要 考 察 利 用 Fi

27、leOutputStream 、 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 = nul

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論