java網(wǎng)絡(luò)編程復(fù)習(xí)題(2013考試題庫)_第1頁
java網(wǎng)絡(luò)編程復(fù)習(xí)題(2013考試題庫)_第2頁
java網(wǎng)絡(luò)編程復(fù)習(xí)題(2013考試題庫)_第3頁
java網(wǎng)絡(luò)編程復(fù)習(xí)題(2013考試題庫)_第4頁
java網(wǎng)絡(luò)編程復(fù)習(xí)題(2013考試題庫)_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 V大發(fā)大綱Java網(wǎng)絡(luò)編程期末復(fù)習(xí)題(I/O、多線程、網(wǎng)絡(luò)編程、數(shù)據(jù)庫操作)一、單選題1、下列關(guān)于Java線程的說法那些是正確的( ) A、每一個Java線程可以看成由代碼、一個真實的CPU以及數(shù)據(jù)三部份組成。B、創(chuàng)建線程的兩種方法中,從Thread類中繼承的創(chuàng)建方式可以防止出現(xiàn)多父類問題。C、Thread類屬于java.util程序包。D、以上說法無一正確。2、運行下列程序, 會產(chǎn)生什么結(jié)果?( )public class X extends Thread implements Runable public void run() System.out.println(this is run

2、(); public static void main(String args) Thread t=newThread(new X(); t.start(); A、第一行會產(chǎn)生編譯錯誤 B、第六行會產(chǎn)生編譯錯誤 C、第六行會產(chǎn)生運行錯誤 D、程序會運行和啟動 3、下列選項中,用于定義接口的關(guān)鍵字是( )A、importB、implementsC、interfaceD、protected4定義類頭時能使用的修飾符是( )。A) private B) static C) abstract D) protected5、下面哪個方法不可以在任何時候被任何線程調(diào)用?( )A、wait()B、sleep(

3、)C、yield()D、synchronized(this)6. 下列關(guān)于線程優(yōu)先級的說法中,正確的是 A) 線程的優(yōu)先級是不能改變的 B) 線程的優(yōu)先級是在創(chuàng)建線程時設(shè)置的 C) 在創(chuàng)建線程后的任何時候都可以設(shè)置 D) B和C 7.線程生命周期中正確的狀態(tài)是A) 新建狀態(tài)、運行狀態(tài)和終止?fàn)顟B(tài)B) 新建狀態(tài)、運行狀態(tài)、阻塞狀態(tài)和終止?fàn)顟B(tài) C) 新建狀態(tài)、可運行狀態(tài)、運行狀態(tài)、阻塞狀態(tài)和終止?fàn)顟B(tài) D) 新建狀態(tài)、可運行狀態(tài)、運行狀態(tài)、恢復(fù)狀態(tài)和終止?fàn)顟B(tài) 8.Thread類中能運行線程體的方法是A) start() B) resume() C) init() D) run() 9在程序讀入字符文件

4、時,能夠以該文件作為直接參數(shù)的類是A) FileReader B) BufferedReader C) FileInputStream D) ObjectInputStream 10)java.io包的File類是A) 字符流類 B) 字節(jié)流類 C) 對象流類 D) 非流類 11)下列描述中,正確的是A) 在Serializable接口中定義了抽象方法B) 在Serializable接口中定義了常量 C) 在Serializable接口中沒有定義抽象方法,也沒有定義常量 D) 在Serializable接口中定義了成員方法 12. java中用于創(chuàng)建文件對象的類是( )AFile B. Obj

5、ect C. Thread D. Frame13. 從鍵盤上輸入一個字符串創(chuàng)建文件對象,若要判斷該文件對象為目錄文件或數(shù)據(jù)文件,可使用下列哪個方法?( ) AgetPath() B. getName() C.isFile() D. isAbsolute()14. 下列哪個類不對直接創(chuàng)建對象?( ) AInputStream B. FileInputStream C. BufferedInputStream D. DataInputStream15. 從鍵盤上輸入多個字符時,為了避免回車換行符的影響,需要使用下列哪個流方法?( ) Awrite() B. flush() C. close() D

6、. skip() 16. 以對象為單位把某個對象寫入文件,則需要使用什么方法? ( ) A. writeInt() B writeObject() C. write() D.writUTF()17. 下列哪個類的方法能夠直接把簡單數(shù)據(jù)類型寫入文件?( ) AOutputStream B. BufferedWriter C. ObjectOutputStream. D.FileWriter18. 若一個類對象能被整體寫入文件,則定義該類時必須實現(xiàn)下列哪個接口?( ) A.Runnable B. ActionListener C. WindowsAdapter D. Serializable19.

7、 下列哪種類型的數(shù)據(jù)能以對象的形式寫入文件?( ) AString B. Frame C. Dialog D. Button20. File類的方法中,用于列舉某目錄下的子目錄及文件的方法是( ) Along length() B. long lastModified() C. String list() D. String getName()21. 能夠以字符串為單位寫入文件數(shù)據(jù)的流類是( ) A. FileOutputStream B. FileWriter C. BufferedWriter C. OutputStream22. 能夠向文件輸入邏輯型數(shù)據(jù)的類是:( ) A. FileOu

8、tputStream B. OutputStream C. FileWriter D.DataOutputStream23. 在線程同步中, 為了喚醒另一個等待的線程,使用下列方法( ) A. sleep() B. wait() C notify() D. join()24. 為了得到當(dāng)前正在運行的線程,可使用下列哪個方法?( ) AgetName() B. Thread.CurrentThread(). B. sleep() D. run()25. 以下( )不屬于線程的狀態(tài)。 A就緒狀態(tài) B。運行狀態(tài) C。掛起狀態(tài) D。獨占狀態(tài)26當(dāng)線程被創(chuàng)建后,其所處的狀態(tài)是( ) A阻塞狀態(tài) B。運行

9、狀態(tài) C、就緒狀態(tài) D、新建狀態(tài)27 當(dāng)線程調(diào)用start()后,其所處狀態(tài)為( ) A阻塞狀態(tài) B。運行狀態(tài) C、就緒狀態(tài) D、新建狀態(tài)28 Thread.sleep()方法調(diào)用后,當(dāng)?shù)却龝r間未到,該線程所處狀態(tài)為( ) A阻塞狀態(tài) B。運行狀態(tài) C、就緒狀態(tài) D、新建狀態(tài)29新生狀態(tài)的線程其可能直接進(jìn)入的狀態(tài)是( ) A阻塞狀態(tài) B、運行狀態(tài) C、新建狀態(tài) D、結(jié)束狀態(tài)30Thread.sleep()方法調(diào)用后,當(dāng)?shù)却龝r間已到,該線程所處狀態(tài)為( ) A阻塞狀態(tài) B。運行狀態(tài) C、就緒狀態(tài) D、新建狀態(tài)31當(dāng)線程因異常而退出run()后,其所處狀態(tài)為( ) A阻塞狀態(tài) B。運行狀態(tài) C、就

10、緒狀態(tài) D、結(jié)束狀態(tài)32wait()方法首先是哪個類的方法?( ) A. Object B. Thread. C. Runnable D. File33. 如果我們想實現(xiàn)“先把要寫入文件的數(shù)據(jù)先緩存到內(nèi)存中,再把緩存中的數(shù)據(jù)寫入文件中”的功能時,則需要使用下列哪個類?( ) A. FileReader B. OutputStream C. FilterOutputStream D. DataOutputStream34. 用read()方法讀取文件內(nèi)容時,判斷文件結(jié)束的標(biāo)記為( ) A. 0 B. 1 C -1 D. 無標(biāo)記35 以下哪個方法只對使用了緩沖的流類起作用?( ) A. read(

11、) B. write() C skip() D. flush()36. Java提供的類InetAddress來進(jìn)行有關(guān)Internet地址的操作.( ) A. Socket B.ServerSocket C. DatagramSocket D InetAddress37. InetAddress類中哪個方法可實現(xiàn)正向名稱解析?( ) A. isReachable() B. getHostAddress() C. getHosstName() D.getByName()38. 為了獲取遠(yuǎn)程主機的文件內(nèi)容,當(dāng)創(chuàng)建URL對象后,需要使用哪個方法獲取信息( ) A.getPort() B.getHo

12、st C.openStream() D.openConnection()39. java程序中,使用TCP套接字編寫服務(wù)端程序的套接字類是( ) A. Socket B. ServerSocket C. DatagramSocket D.DatagramPacket40. ServerSocket的監(jiān)聽方法accept()的返回值類型是( ) A. void B. Object C. Socket D. DatagramSocket41. ServerSocket的getInetAddress()的返回值類型是( ) A. Socket B ServerSocket D.InetAddress

13、 D,.URL42. 當(dāng)使用客戶端套接字Socket創(chuàng)建對象時,需要指定( ) A服務(wù)器主機名稱和端口 B、服務(wù)器端口和文件 C、服務(wù)器名稱和文件 D服務(wù)器地址和文件43使用流式套接字編程時,為了向?qū)Ψ桨l(fā)送數(shù)據(jù),則需要使用哪個方法( ) AgetInetAddress() B. getLocalPort() C.getOutputStream() D.getInputStream()44. 使用UDP套接字通信時,常用哪個類把要發(fā)送的信息打包? ( ) A. String B. DatagramSocket C. MulticastSocket D.DatagramPacket45. 使用UD

14、P套接字通信時,哪個方法用于接收數(shù)據(jù) ( ) A. read() B. receive() C. accept() D. Listen()46. 若要取得數(shù)據(jù)包的中源地址,可使用下列哪個語句( )? A getAddress() B. getPort() C. getName() D.getData()47. 要使用java程序訪問數(shù)據(jù)庫,則必須首先與數(shù)據(jù)庫建立連接,在建立連接前,應(yīng)加載數(shù)據(jù)庫驅(qū)動程序,該語句為( ) A Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”) B. DriverManage.getConnection(“”,”,”) C.R

15、esult rs= DriverManage.getConnection(“”,”,”).createStatement() D. Statement st= DriverManage.getConnection(“”,”,”).createStaement()48. 要使用java程序訪問數(shù)據(jù)庫,則必須首先與數(shù)據(jù)庫建立連接,該語句為( ) A Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”) B. DriverManage.getConnection(“”,”,”) C.Result rs= DriverManage.getConnection(“”

16、,”,”).createStatement() D. Statement st= DriverManage.getConnection(“”,”,”).createStaement()49. java程序與數(shù)據(jù)庫連接后,需要查看某個表中的數(shù)據(jù),使用下列哪個語句?( ) A. executeQuery() B.executeUpdate() C executeEdit() D.executeSelect()50. java程序與數(shù)據(jù)庫連接后,需要查看某個表中的數(shù)據(jù),使用下列哪個語句?( ) A. executeQuery() B.executeUpdate() C executeEdit() D

17、.executeSelect()二、填空題1Stdout System.out作為PrintStream的實例,來實現(xiàn)stdout,它代表的是 屏幕 2Stdin System.in作為InputStream類的一個實例來實現(xiàn)stdin,它代表的是鍵盤,你可以使用其中兩個成員函數(shù), read()讓你從輸入中讀一個字節(jié),skip(longn)讓你在輸入中跳過n個字節(jié)。3 Java中的IO流分為兩種,一種是字節(jié)流,另一種是字符流,分別由四個抽象類來表示(每種流包括輸入和輸出兩種所以一共四個):InputStream,OutputStream,Reader,Writer。它們通過重載read()和w

18、rite()方法定義了6個讀寫操作方法。4 File類不是一個標(biāo)準(zhǔn)的I/O類,在java.io類庫中它是唯一的non-stream類別,既不能讀取文件內(nèi)容,也不能修改文件內(nèi)容,主要作用是收集檔案(或目錄)的相關(guān)信息,例如:建立文件對象、修改文件名、設(shè)置文件屬性、測試文件屬性5目錄是一個包含其他文件和路徑列表的File 類。當(dāng)你創(chuàng)建一個File 對象且它是目錄時,isDirectory( ) 方法返回ture。這種情況下,可以調(diào)用該對象的String list( )方法來提取該目錄內(nèi)部其他文件和目錄的列表6. 所有的輸出過濾流都是抽象類_ _的子類。(FilterOutputStream)7、字

19、符輸入流BufferedReader使用了_ _技術(shù)。(PrintStream)8、 InputStreamReader負(fù)責(zé)將InputStream轉(zhuǎn)化成Reader,而OutputStreamWriter則將OutputStream轉(zhuǎn)化成Writer。實際上是通過byte和String來關(guān)聯(lián)。9、設(shè) a.txt為當(dāng)前目錄下的一個文本文件,則以字符方式向該文件寫數(shù)據(jù)時,需要建立的輸出流通道為:new FileWriter(“a.txt”);10. 隨機訪問文件類是RandomAccessFile,它實現(xiàn)了與DataInputStream, DataOutputStream類同樣實現(xiàn)的接口Dat

20、aInput, DataOutput.。11實現(xiàn)多線程的兩種方式是:1、繼承Thread類;2、實現(xiàn)Runnable接口。12、取得當(dāng)前線程的語句是: Thread.currentThread();13主線程的名稱是main, 默認(rèn)創(chuàng)建的第一個子線程的名稱是thread-014. 可以調(diào)用 Thread 類的方法 getPriority() 和 setPriority()來存取線程的優(yōu)先級,線程的優(yōu)先級界于1(MIN_PRIORITY)和10(MAX_PRIORITY)之間,缺省是5(NORM_PRIORITY)。15.(1) 當(dāng)多個線程同時運行時,會產(chǎn)生數(shù)據(jù)錯誤及其它沖突問題。Java語言提

21、供了線程同步控制機制,一是 鎖定共享資源,使得在任何時刻只有一個線程能夠訪問共享資源,以保持共享資源的完整和一致,二是讓互相通信的線程 運行,以保證通信的正確性。(2)線程之間的通信有兩種方法:一是把共享變量和方法封閉在一個類中,二是利用系統(tǒng)方法 和 控制線程通信. 實現(xiàn)對共享資源互拆訪問的方法是在方法聲明中加入synchronized關(guān)鍵字來聲明一個訪問共享資源的方法,或者通過 synchronized關(guān)鍵字來聲明synchronized 塊。 16、 守護(hù)線程一般被用于在后臺為其它線程提供服務(wù)。調(diào)用方法 isDaemon() 來判斷一個線程是否是守護(hù)線程,也可以調(diào)用方法setDaemon(

22、)將一個線程設(shè)為守護(hù)線程。 17、InetAddress是用于封裝IP地址和DNS的一個類。 18、TCP/IP套接字是最可靠的雙向流協(xié)議。等待客戶端的服務(wù)器使用ServerSocket類,而要連接到服務(wù)器的客戶端則使用Socket類。 19、包中提供了一個類MulticastSocket,允許數(shù)據(jù)報以廣播方式發(fā)送到該端口的所有客戶。 20. 在TCP/IP協(xié)議的傳輸層除了TCP協(xié)議之外還有一個UDP協(xié)議。幾個標(biāo)準(zhǔn)的應(yīng)用層協(xié)議HTTP,F(xiàn)TP,SMTP使用的都是TCP協(xié)議。 UDP協(xié)議主要用于需要很強的實時交互性的場合,如網(wǎng)絡(luò)游戲,視頻會議等 21、當(dāng)我們得到一個URL對象后,就可以通過它讀取

23、指定的WWW資源。這時我們將使用URL的方法openStream(),其定義為:InputStream openStream(); 22、URL的構(gòu)造方法都聲明拋棄非運行時異常 MalformedURLException ,因此生成URL對象時,我們必須要對這一例外進(jìn)行處理,通常是用try-catch語句進(jìn)行捕獲。 23、一個Statement對象,可以執(zhí)行多個sql語句以后,批量更新。這多個語句可以是delete、update、insert等或兼有 24、Java數(shù)據(jù)庫操作基本流程:取得數(shù)據(jù)庫連接 、執(zhí)行sql語句、處理執(zhí)行結(jié)果、釋放數(shù)據(jù)庫連接。 25、下列程序的功能是在監(jiān)控臺上每隔一秒鐘顯

24、示一個字符串“Hello”,能夠填寫在程序中下劃線位置,使程序完整并能正確運行的語句是 public class Test implements Runnable public static void main(String args) Test t=new Test(); Thread tt=new Thread(t); tt.start(); public void run() for(;) try ; catch( e) System.put.println(Hello); 答: Thread.sleep(1000) InterruptedException三、簡答與程序分析、填空、設(shè)計

25、題第一部分:簡答1、線程的生命期內(nèi)包括哪些狀態(tài)? 答:新建狀態(tài)、就緒狀態(tài)、運行狀態(tài)、阻塞狀態(tài)、死亡狀態(tài) 見下圖:各狀態(tài)之間的切換關(guān)系 死亡創(chuàng)建阻塞就緒運行2、什么是線程的新建狀態(tài)?答: 線程對象已經(jīng)創(chuàng)建,還沒有在其上調(diào)用start()方法。3、什么是線程的可運行狀態(tài)?答:當(dāng)線程有資格運行,但調(diào)度程序還沒有把它選定為運行線程時線程所處的狀態(tài)。當(dāng)start()方法調(diào)用時,線程首先進(jìn)入可運行狀態(tài)。在線程運行之后或者從阻塞、等待或睡眠狀態(tài)回來后,也返回到可運行狀態(tài)。4、什么是線程的死亡態(tài)?答:當(dāng)線程的run()方法完成時就認(rèn)為它死去。這個線程對象也許是活的,但是,它已經(jīng)不是一個單獨執(zhí)行的線程。線程一旦

26、死亡,就不能復(fù)生。 如果在一個死去的線程上調(diào)用start()方法,會拋出java.lang.IllegalThreadStateException異常。5、調(diào)用join()方法有何作用?答: 保證當(dāng)前線程停止執(zhí)行,直到該線程所加入的線程完成為止。然而,如果它加入的線程沒有存活,則當(dāng)前線程不需要停止。6現(xiàn)有字符串S=”hello,java!”,則以此字符串生成待發(fā)送DatagramPacket包dgp的語句是:答: Byte str=s.getbytes(); DatagramPacket dgp=new DatagramPacket(str, str.length(),目的主機,目的端口);7

27、、 介紹使用java Socket創(chuàng)建客戶端Socket的過程。 答:try Socket socket=new Socket(目標(biāo)主機,目標(biāo)端口); catch(IOException e) System.out.println(Error:+e); 8、介紹使用java ServerSocket創(chuàng)建服務(wù)器端ServerSocket的過程。 答: ServerSocket server=null;try server=new ServerSocket(監(jiān)聽端口); catch(IOException e)System.out.println(can not listen to :+e);So

28、cket socket=null;try socket=server.accept(); catch(IOException e)System.out.println(Error:+e); 9、寫出一種使用java流式套接式編程時,創(chuàng)建雙方通信通道的語句。答:PrintStream os=new PrintStream(new BufferedOutputStreem(socket.getOutputStream();DataInputStream is=new DataInputStream(socket.getInputStream();PrintWriter out=new PrintW

29、riter(socket.getOutStream(),true);BufferedReader in=new ButfferedReader(new InputSteramReader(Socket.getInputStream(); 10、對于建立功能齊全的Socket,其工作過程包含以下四個基本的步驟:(1) 創(chuàng)建Socket;(2) 打開連接到Socket的輸入/出流;(3) 按照一定的協(xié)議對Socket進(jìn)行讀/寫操作;(4) 關(guān)閉Socket.11、簡述基于TCP及UDP套接字通信的主要區(qū)別答:TCP,可靠,傳輸大小無限制,但是需要連接建立時間,差錯控制開銷大。 UDP,不可靠,差錯

30、控制開銷較小,傳輸大小限制在64K以下,不需要建立連接。12、 寫出DatagramSocket的常用構(gòu)造方法: 答: DatagramSocket();DatagramSocket(int prot);DatagramSocket(int port, InetAddress laddr) port指明socket所使用的端口號,如果未指明端口號,則把socket連接到本地主機上一個可用的端口。laddr指明一個可用的本地地址。 13、介紹一下DatagramPacket的常用構(gòu)造方法 :DatagramPacket(byte buf,int length);DatagramPacket(by

31、te buf, int length, InetAddress addr, int port);DatagramPacket(byte buf, int offset, int length);DatagramPacket(byte buf, int offset, int length, InetAddress address, int port);其中,buf中存放數(shù)據(jù)報數(shù)據(jù),length為數(shù)據(jù)報中數(shù)據(jù)的長度,addr和port旨明目的地址,offset指明了數(shù)據(jù)報的位移量。 14、在接收端接收數(shù)據(jù)報的主要語句: 答: byte buf =new byten; DatagramPacket

32、 packet=new DatagramPacket(buf, n); Socket.receive (packet); 15、寫出java程序中用Statement來執(zhí)行sql查詢與更新語句String sql; /表示查詢或更新的操作語句;Statement sm = cn.createStatement(); /cn表示數(shù)據(jù)庫連接sm.executeQuery(sql); / 執(zhí)行數(shù)據(jù)查詢語句(select)sm.executeUpdate(sql); / 執(zhí)行數(shù)據(jù)更新語句(delete、update、insert、drop等)statement.close();16什么叫流?流式輸入輸

33、出有什么特點?17Java流被分為字節(jié)流、字符流兩大流類,兩者有什么區(qū)別?18File類有哪些構(gòu)造函數(shù)和常用方法?16答:所謂流是指同一臺計算機或網(wǎng)絡(luò)中不同計算機之間有序運動著的數(shù)據(jù)序列,Java把這些不同來源和目標(biāo)的數(shù)據(jù)都統(tǒng)一抽象為數(shù)據(jù)流。數(shù)據(jù)流可分為輸入流和輸出流,輸入流代表從其他設(shè)備流入計算機的數(shù)據(jù)序列,輸出流代表從計算機流向外部設(shè)備的數(shù)據(jù)序列。流式輸入輸出的特點是數(shù)據(jù)的獲取和發(fā)送沿數(shù)據(jù)序列的順序進(jìn)行,即每一個數(shù)據(jù)都必須等待排在它前面的數(shù)據(jù),等前面的數(shù)據(jù)讀入或送出之后才能被讀寫。所以流和隊列一樣,只能以“先進(jìn)先出”的方式對其中的數(shù)據(jù)進(jìn)行讀寫,而不能隨意選擇讀寫的位置。17答:兩者都作為O

34、bject類的直接子類,基本輸入流(InputStream)和基本輸出流(OutputStream)是處理以8位字節(jié)為基本單位的字節(jié)流類;Reader和Writer類是專門處理16位字符流的類。18答:構(gòu)造函數(shù)有:(1)public File(String pathname):創(chuàng)建一個對應(yīng)于參數(shù)pathname的File類對象。參數(shù)pathname是包含目錄和文件名的字符串。如果沒有文件名,則代表目錄。(2)public File(String parent , String child):該構(gòu)造函數(shù)將pathname分成兩部分parent和child,參數(shù)parent表示目錄或文件所在路徑,

35、參數(shù)child表示目錄或文件名稱。(3)public File(File parent, String child):該構(gòu)造函數(shù)與上面一個不同在于將parent的參數(shù)類型由String變?yōu)镕ile,代表parent是一個已經(jīng)創(chuàng)建的File類文件對象(指向目錄)。常用方法有:(1)public boolean canWrite( ):返回文件是否可寫。(2)public boolean canRead( ):返回文件是否可讀。(3)public boolean createNewFile( ):當(dāng)文件不存在時創(chuàng)建文件。19位置指針的作用是什么?RandomAccessFile類提供了哪些方法實現(xiàn)

36、對指針的控制?19答:要實現(xiàn)對文件的隨機讀取,也就是在文件的任何位置執(zhí)行讀寫數(shù)據(jù)的操作,需要一個指針來指定讀寫的位置。在創(chuàng)建RandomAccessFile類對象的同時,系統(tǒng)自動創(chuàng)建了一個指向這個文件開頭的指針,當(dāng)執(zhí)行讀寫操作后,指針自動指向被讀寫數(shù)據(jù)之后的第一個字節(jié)處。指針初始值是0,每讀/寫一個字節(jié),指針自動增加1。RandomAccessFile類提供了一些控制指針移動的方法。public long getFilePointer();獲取當(dāng)前指針指向文件的位置。pulbic void seek(long pos);將指針移動到參數(shù)pos指定的位置。public int skipBytes

37、(int n);指針從當(dāng)前位置向后移動n個字節(jié)位置,并返回指針實際移動的字節(jié)數(shù)。 20、第二部分:分析程序功能或完成程序1、分析下列程序功能import java.io.*; class StreamTest public static void main(String args)throws Exception FileOutputStream fos=new FileOutputStream(testBuffer.txt); BufferedOutputStream bos=new BufferedOutputStream(fos); bos.write(Hello Java!.getBy

38、tes(); bos.close(); 2、利用文件輸入輸出流編寫一個實現(xiàn)文件拷貝的程序,源文件名和目標(biāo)文件名通過命令行參數(shù)傳入。 答:import java.io.*;class CopyFilepublic static void main(String args) String file1,file2 ;int ch = 0 ;try file1=args0;file2=args1;FileInputStream fis = new FileInputStream(file1);FileOutputStream fos=new FileOutputStream(file2);while

39、(ch=fis.read()!=-1)fos.write(ch);fis.close();fos.close();catch(FileNotFoundException e)System.out.println(源文件:未找到!);catch(ArrayIndexOutOfBoundsException e)System.out.println(缺少運行參數(shù)!);System.exit(-1);catch (IOException e)System.out.println(e.toString();3、編寫一個程序,在當(dāng)前目錄下創(chuàng)建一個子目錄test,在這個新創(chuàng)建的子目錄下創(chuàng)建一個文件,并把這

40、個文件設(shè)置成只讀。 3答:import java.io.*;public class NewFilepublic static void main(String args)File f=new File(test);if(f.exists()&f.isDirectory()System.err.println(目錄:+f.toString()+已經(jīng)存在!);elseif(f.mkdir()System.out.println(目錄+f.getAbsolutePath()+創(chuàng)建結(jié)束!);File f2=new File(f,my.txt);tryf2.createNewFile();f2.set

41、ReadOnly();catch(IOException e)System.out.println(e.toString();System.out.println(文件:+f2.getAbsoluteFile()+創(chuàng)建結(jié)束!);else System.out.println(目錄+f.getAbsoluteFile()+創(chuàng)建失敗!);4、編寫一個程序,從鍵盤輸入一串字符,統(tǒng)計這串字符中英文字母、數(shù)字、其他符號的字符數(shù)。4答:import java.io.*;public class Countpublic static void main(String args)int x=0,y=0,z=0

42、;int ch;trywhile(ch=System.in.read()!=r)if(ch=A&ch=a&ch=0&ch=9)y+;elsez+;catch(IOException e)System.out.println(e.toString();System.out.println(英文字母:+x);System.out.println(數(shù)字字符:+y);System.out.println(其它字符:+z);5編寫一個程序,從鍵盤輸入一串字符,從屏幕輸出并將其存入a.txt文件中。5答:import java.io.*;public class InFilepublic static v

43、oid main(String args)int ch;tryFileOutputStream out=new FileOutputStream(a.txt);while(ch=System.in.read()!=r)System.out.write(ch);out.write(ch);out.close();System.out.write(n);catch(IOException e)System.out.println(e.toString();System.out.println(輸出至文件完畢!);6編寫一個程序,從鍵盤輸入10個整數(shù),并將這些數(shù)據(jù)排序后在標(biāo)準(zhǔn)輸出上輸出。6答:imp

44、ort java.io.*;public class Sortpublic static void main(String args)int a=new int10;byte b=new byte10;int t;String str;System.out.println(請輸入10個整數(shù):);tryfor(int i=0;i10;i+)System.out.print(No. +(i+1)+: );System.in.read(b);str=new String(b);str=str.trim();ai=Integer.parseInt(str);catch(IOException e)Sy

45、stem.out.println(e.toString();catch(NumberFormatException e)System.out.println(e.toString();for(int i=0;i9;i+)for(int j=i+1;jaj)t=ai;ai=aj;aj=t;for(int i=0;i10;i+)System.out.println(ai+t);7、 下列程序用于顯示指定目錄下的子目錄及文件名,請?zhí)顚懰鄙俚拇a; import java.io.*;public class sy2_1 public static void main(String args ) St

46、ring s1,s2 ; try InputStreamReader iin=new InputStreamReader(System.in); BufferedReader bin=new BufferedReader(iin); System.out.println(請輸入一個文件名:); s1=bin.readLine(); /讀入文件名 File f=new File(s1); System.out.println(f.isDirectory(); if (f.isDirectory() / 判斷是否為目錄; int n=(f.list().length; s2=new Stringn

47、; s2=f.list(); /獲取子目錄及文件名; for(int i=0;is2.length;i+) System.out.println(s2i); catch(IOException e) 8、下列程序向屏幕輸出文本文件內(nèi)容:請完成所缺少的代碼 import java.io.*; class readtxt public static void main(String args) try FileReader f1 = new FileReader(u.txt); BufferedReader bf1 =new BufferedReader(f1); String line; lin

48、e = bf1.readLine(); while(line!=null) /判斷所讀的一行內(nèi)容是否為空; System.out.println(line); line = bf1.readLine(); /繼續(xù)讀入下一行 bf1.close(); /關(guān)閉文件的輸入流; catch(IOException e) e.printStackTrace(); 9、 編寫程序?qū)崿F(xiàn):程序運行后共有3個線程,分別輸出10次線程的名稱:main, thread-0,thread-1. 答:略10、請編寫java程序,訪問所在的主頁文件 答: public class URLReader public sta

49、tic void main(String args) throws Exception /聲明拋出所有例外 URL tirc = new URL( /構(gòu)建一URL對象BufferedReader in = new BufferedReader(new InputStreamReader(tirc.openStream();/使用openStream得到一輸入流并由此構(gòu)造一個BufferedReader對象String inputLine;while (inputLine = in.readLine() != null) /從輸入流不斷的讀數(shù)據(jù),直到讀完為止 System.out.println(inputLine); /把讀入的數(shù)據(jù)打印到屏幕上 in.close(); /關(guān)閉輸入流 11、從鍵盤上輸入主機名稱,編寫類似ping的程序,測試連接效果。import .*; import java.io.*; class Ping public static void main(String args) System.out.println(請輸入ping主機名稱或地址:n); try String host = keyreadline(); InetAddre

溫馨提示

  • 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

提交評論