![2023年java網(wǎng)絡編程復習題考試題庫_第1頁](http://file4.renrendoc.com/view/766b684f1c1d00c3ab364916c1c1a54a/766b684f1c1d00c3ab364916c1c1a54a1.gif)
![2023年java網(wǎng)絡編程復習題考試題庫_第2頁](http://file4.renrendoc.com/view/766b684f1c1d00c3ab364916c1c1a54a/766b684f1c1d00c3ab364916c1c1a54a2.gif)
![2023年java網(wǎng)絡編程復習題考試題庫_第3頁](http://file4.renrendoc.com/view/766b684f1c1d00c3ab364916c1c1a54a/766b684f1c1d00c3ab364916c1c1a54a3.gif)
![2023年java網(wǎng)絡編程復習題考試題庫_第4頁](http://file4.renrendoc.com/view/766b684f1c1d00c3ab364916c1c1a54a/766b684f1c1d00c3ab364916c1c1a54a4.gif)
![2023年java網(wǎng)絡編程復習題考試題庫_第5頁](http://file4.renrendoc.com/view/766b684f1c1d00c3ab364916c1c1a54a/766b684f1c1d00c3ab364916c1c1a54a5.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
V大發(fā)大綱Java網(wǎng)絡編程期末復習題(I/O、多線程、網(wǎng)絡編程、數(shù)據(jù)庫操作)一、單選題1、下列關于Java線程的說法那些是對的的()A、每一個Java線程可以當作由代碼、一個真實的CPU以及數(shù)據(jù)三部份組成。B、創(chuàng)建線程的兩種方法中,從Thread類中繼承的創(chuàng)建方式可以防止出現(xiàn)多父類問題。C、Thread類屬于java.util程序包。D、以上說法無一對的。2、運營下列程序,會產(chǎn)生什么結果?()publicclassXextendsThreadimplementsRunable{publicvoidrun(){System.out.println("thisisrun()");}publicstat(yī)icvoidmain(Stringargs[]){Threadt=newThread(newX());t.start();}}A、第一行會產(chǎn)生編譯錯誤B、第六行會產(chǎn)生編譯錯誤C、第六行會產(chǎn)生運營錯誤D、程序會運營和啟動3、下列選項中,用于定義接口的關鍵字是()
A、importB、implementsC、interfaceD、protected4.定義類頭時能使用的修飾符是()。
A)privateB)staticC)abstractD)protected?5、下面哪個方法不可以在任何時候被任何線程調用?()A、wait()B、sleep()C、yield()D、synchronized(this)6.下列關于線程優(yōu)先級的說法中,對的的是A)線程的優(yōu)先級是不能改變的B)線程的優(yōu)先級是在創(chuàng)建線程時設立的C)在創(chuàng)建線程后的任何時候都可以設立D)B和C7.線程生命周期中對的的狀態(tài)是A)新建狀態(tài)、運營狀態(tài)和終止狀態(tài)B)新建狀態(tài)、運營狀態(tài)、阻塞狀態(tài)和終止狀態(tài)C)新建狀態(tài)、可運營狀態(tài)、運營狀態(tài)、阻塞狀態(tài)和終止狀態(tài)D)新建狀態(tài)、可運營狀態(tài)、運營狀態(tài)、恢復狀態(tài)和終止狀態(tài)8.Thread類中能運營線程體的方法是A)start() ? ? B)resume()C)init()? ? ? D)run()9在程序讀入字符文獻時,可以以該文獻作為直接參數(shù)的類是A)FileReader ? ?B)BufferedReaderC)FileInputStream ?? ?D)ObjectInputStream10)java.io包的File類是A)字符流類 ??? B)字節(jié)流類C)對象流類?? ??D)非流類11)下列描述中,對的的是A)在Serializable接口中定義了抽象方法B)在Serializable接口中定義了常量C)在Serializable接口中沒有定義抽象方法,也沒有定義常量D)在Serializable接口中定義了成員方法12.java中用于創(chuàng)建文獻對象的類是()A.FileB.ObjectC.ThreadD.Frame13.從鍵盤上輸入一個字符串創(chuàng)建文獻對象,若要判斷該文獻對象為目錄文獻或數(shù)據(jù)文獻,可使用下列哪個方法?()A.getPath()B.getName()C.isFile()D.isAbsolute()14.下列哪個類不對直接創(chuàng)建對象?()A.InputStreamB.FileInputStreamC.BufferedInputStreamD.Dat(yī)aInputStream15.從鍵盤上輸入多個字符時,為了避免回車換行符的影響,需要使用下列哪個流方法?()A.write()B.flush()C.close()D.skip()16.以對象為單位把某個對象寫入文獻,則需要使用什么方法?()A.writeInt()BwriteObject()C.write()D.writUTF()17.下列哪個類的方法可以直接把簡樸數(shù)據(jù)類型寫入文獻?()A.OutputStreamB.BufferedWriterC.ObjectOutputStream.D.FileWriter18.若一個類對象能被整體寫入文獻,則定義該類時必須實現(xiàn)下列哪個接口?()A.RunnableB.ActionListenerC.WindowsAdapterD.Serializable19.下列哪種類型的數(shù)據(jù)能以對象的形式寫入文獻?()A.StringB.FrameC.DialogD.Button20.File類的方法中,用于列舉某目錄下的子目錄及文獻的方法是()A.longlength()B.longlastModified()C.String[]list()D.StringgetName()21.可以以字符串為單位寫入文獻數(shù)據(jù)的流類是()A.FileOutputStreamB.FileWriterC.BufferedWriterC.OutputStream22.可以向文獻輸入邏輯型數(shù)據(jù)的類是:()A.FileOutputStreamB.OutputStreamC.FileWriterD.DataOutputStream23.在線程同步中,為了喚醒另一個等待的線程,使用下列方法()A.sleep()B.wait()Cnotify()D.join()24.為了得到當前正在運營的線程,可使用下列哪個方法?()A.getName()B.Thread.CurrentThread().B.sleep()D.run()25.以下()不屬于線程的狀態(tài)。A.就緒狀態(tài)B。運營狀態(tài)C。掛起狀態(tài)D。獨占狀態(tài)26.當線程被創(chuàng)建后,其所處的狀態(tài)是()A.阻塞狀態(tài)B。運營狀態(tài)C、就緒狀態(tài)D、新建狀態(tài)27.當線程調用start()后,其所處狀態(tài)為()A.阻塞狀態(tài)B。運營狀態(tài)C、就緒狀態(tài)D、新建狀態(tài)28.Thread.sleep()方法調用后,當?shù)却龝r間未到,該線程所處狀態(tài)為()A.阻塞狀態(tài)B。運營狀態(tài)C、就緒狀態(tài)D、新建狀態(tài)29.新生狀態(tài)的線程其也許直接進入的狀態(tài)是()A.阻塞狀態(tài)B、運營狀態(tài)C、新建狀態(tài)D、結束狀態(tài)30.Thread.sleep()方法調用后,當?shù)却龝r間已到,該線程所處狀態(tài)為()A.阻塞狀態(tài)B。運營狀態(tài)C、就緒狀態(tài)D、新建狀態(tài)31.當線程因異常而退出run()后,其所處狀態(tài)為()A.阻塞狀態(tài)B。運營狀態(tài)C、就緒狀態(tài)D、結束狀態(tài)32.wait()方法一方面是哪個類的方法?()A.ObjectB.Thread.C.RunnableD.File33.假如我們想實現(xiàn)“先把要寫入文獻的數(shù)據(jù)先緩存到內存中,再把緩存中的數(shù)據(jù)寫入文獻中”的功能時,則需要使用下列哪個類?()A.FileReaderB.OutputStreamC.FilterOutputStreamD.DataOutputStream34.用read()方法讀取文獻內容時,判斷文獻結束的標記為()A.0B.1C-1D.無標記35.以下哪個方法只對使用了緩沖的流類起作用?()A.read()B.write()Cskip()D.flush()36.Java提供的類InetAddress來進行有關Internet地址的操作.()A.SocketB.ServerSocketC.Dat(yī)agramSocketDInetAddress37.InetAddress類中哪個方法可實現(xiàn)正向名稱解析?()A.isReachable()B.getHostAddress()C.getHosstName()D.getByName()38.為了獲取遠程主機的文獻內容,當創(chuàng)建URL對象后,需要使用哪個方法獲取信息()A.getPort()B.getHostC.openStream()D.openConnection()39.java程序中,使用TCP套接字編寫服務端程序的套接字類是()A.SocketB.ServerSocketC.DatagramSocketD.DatagramPacket40.ServerSocket的監(jiān)聽方法accept()的返回值類型是()A.voidB.ObjectC.SocketD.DatagramSocket41.ServerSocket的getInetAddress()的返回值類型是()A.SocketBServerSocketD.InetAddressD,.URL42.當使用客戶端套接字Socket創(chuàng)建對象時,需要指定()A.服務器主機名稱和端口B、服務器端口和文獻C、服務器名稱和文獻D.服務器地址和文獻43.使用流式套接字編程時,為了向對方發(fā)送數(shù)據(jù),則需要使用哪個方法()A.getInetAddress()B.getLocalPort()C.getOutputStream()D.getInputStream()44.使用UDP套接字通信時,常用哪個類把要發(fā)送的信息打包?()A.StringB.DatagramSocketC.MulticastSocketD.DatagramPacket45.使用UDP套接字通信時,哪個方法用于接受數(shù)據(jù)()A.read()B.receive()C.a(chǎn)ccept()D.Listen()46.若要取得數(shù)據(jù)包的中源地址,可使用下列哪個語句()?A.getAddress()B.getPort()C.getName()D.getData()47.要使用java程序訪問數(shù)據(jù)庫,則必須一方面與數(shù)據(jù)庫建立連接,在建立連接前,應加載數(shù)據(jù)庫驅動程序,該語句為()AClass.forName(“sun.jdbc.odbc.JdbcOdbcDriver”)B.DriverManage.getConnection(“”,””,””)C.Resultrs=DriverManage.getConnection(“”,””,””).createStatement()D.Statementst=DriverManage.getConnection(“”,””,””).createStaement()48.要使用java程序訪問數(shù)據(jù)庫,則必須一方面與數(shù)據(jù)庫建立連接,該語句為()AClass.forName(“sun.jdbc.odbc.JdbcOdbcDriver”)B.DriverManage.getConnection(“”,””,””)C.Resultrs=DriverManage.getConnection(“”,””,””).createStatement()D.Statementst=DriverManage.getConnection(“”,””,””).createStaement()49.java程序與數(shù)據(jù)庫連接后,需要查看某個表中的數(shù)據(jù),使用下列哪個語句?()A.executeQuery()B.executeUpdate()CexecuteEdit()D.executeSelect()50.java程序與數(shù)據(jù)庫連接后,需要查看某個表中的數(shù)據(jù),使用下列哪個語句?()A.executeQuery()B.executeUpdate()CexecuteEdit()D.executeSelect()二、填空題1.StdoutSystem.out作為PrintStream的實例,來實現(xiàn)stdout,它代表的是屏幕2.StdinSystem.in作為InputStream類的一個實例來實現(xiàn)stdin,它代表的是鍵盤,你可以使用其中兩個成員函數(shù),read()讓你從輸入中讀一個字節(jié),skip(long
n)讓你在輸入中跳過n個字節(jié)。3.Java中的IO流分為兩種,一種是字節(jié)流,另一種是字符流,分別由四個抽象類來表達(每種流涉及輸入和輸出兩種所以一共四個):InputStream,OutputStream,Reader,Writer。它們通過重載read()和write()方法定義了6個讀寫操作方法。4.File類不是一個標準的I/O類,在java.io類庫中它是唯一的non-stream類別,既不能讀取文獻內容,也不能修改文獻內容,重要作用是收集檔案(或目錄)的相關信息,例如:建立文獻對象、修改文獻名、設立文獻屬性、測試文獻屬性5.目錄是一個包含其他文獻和途徑列表的File類。當你創(chuàng)建一個File對象且它是目錄時,isDirectory()方法返回ture。這種情況下,可以調用該對象的String[]list()方法來提取該目錄內部其他文獻和目錄的列表6.所有的輸出過濾流都是抽象類_____的子類。(FilterOutputStream)7、字符輸入流BufferedReader使用了______技術。(PrintStream)8、InputStreamReader負責將InputStream轉化成Reader,而OutputStreamWriter則將OutputStream轉化成Writer。事實上是通過byte[]和String來關聯(lián)。9、設a.txt為當前目錄下的一個文本文獻,則以字符方式向該文獻寫數(shù)據(jù)時,需要建立的輸出流通道為:newFileWriter(“a.txt”);10.隨機訪問文獻類是RandomAccessFile,它實現(xiàn)了與DataInputStream,Dat(yī)aOutputStream類同樣實現(xiàn)的接口DataInput,DataOutput.。11.實現(xiàn)多線程的兩種方式是:1、繼承Thread類;2、實現(xiàn)Runnable接口。12、取得當前線程的語句是:Thread.currentThread();13.主線程的名稱是main,默認創(chuàng)建的第一個子線程的名稱是thread-014.可以調用Thread類的方法getPriority()和setPriority()來存取線程的優(yōu)先級,線程的優(yōu)先級界于1(MIN_PRIORITY)和10(MAX_PRIORITY)之間,缺省是5(NORM_PRIORITY)。15.(1)當多個線程同時運營時,會產(chǎn)生數(shù)據(jù)錯誤及其它沖突問題。Java語言提供了線程同步控制機制,一是鎖定共享資源,使得在任何時刻只有一個線程可以訪問共享資源,以保持共享資源的完整和一致,二是讓互相通信的線程運營,以保證通信的對的性。(2)線程之間的通信有兩種方法:一是把共享變量和方法封閉在一個類中,二是運用系統(tǒng)方法和控制線程通信.實現(xiàn)對共享資源互拆訪問的方法是在方法聲明中加入synchronized關鍵字來聲明一個訪問共享資源的方法,或者通過synchronized關鍵字來聲明synchronized塊。16、守護線程一般被用于在后臺為其它線程提供服務。調用方法isDaemon()來判斷一個線程是否是守護線程,也可以調用方法setDaemon()將一個線程設為守護線程。
17、InetAddress是用于封裝IP地址和DNS的一個類。18、TCP/IP套接字是最可靠的雙向流協(xié)議。等待客戶端的服務器使用ServerSocket類,而要連接到服務器的客戶端則使用Socket類。19、java.net包中提供了一個類MulticastSocket,允許數(shù)據(jù)報以廣播方式發(fā)送到該端口的所有客戶。20.在TCP/IP協(xié)議的傳輸層除了TCP協(xié)議之外尚有一個UDP協(xié)議。幾個標準的應用層協(xié)議HTTP,F(xiàn)TP,SMTP…使用的都是TCP協(xié)議。UDP協(xié)議重要用于需要很強的實時交互性的場合,如網(wǎng)絡游戲,視頻會議等21、當我們得到一個URL對象后,就可以通過它讀取指定的WWW資源。這時我們將使用URL的方法openStream(),其定義為:InputStreamopenStream();?22、URL的構造方法都聲明拋棄非運營時異常MalformedURLException,因此生成URL對象時,我們必須要對這一例外進行解決,通常是用try-catch語句進行捕獲。23、一個Stat(yī)ement對象,可以執(zhí)行多個sql語句以后,批量更新。這多個語句可以是delete、updat(yī)e、insert等或兼有?24、Java數(shù)據(jù)庫操作基本流程:取得數(shù)據(jù)庫連接、執(zhí)行sql語句、解決執(zhí)行結果、釋放數(shù)據(jù)庫連接。25、下列程序的功能是在監(jiān)控臺上每隔一秒鐘顯示一個字符串“Hello”,可以填寫在程序中下劃線位置,使程序完整并能對的運營的語句是publicclassTestimplementsRunnable{publicstaticvoidmain(Stringargs[]){Testt=newTest();Threadtt=newThread(t);tt.start();}publicvoidrun(){for(;;){try{;}cat(yī)ch(e){}System.put.println("Hello");}}}答: Thread.sleep(1000)InterruptedException三、簡答與程序分析、填空、設計題第一部分:簡答1、線程的生命期內涉及哪些狀態(tài)?答:新建狀態(tài)、就緒狀態(tài)、運營狀態(tài)、阻塞狀態(tài)、死亡狀態(tài)見下圖:各狀態(tài)之間的切換關系死亡死亡創(chuàng)建阻塞就緒運營2、什么是線程的新建狀態(tài)?答:線程對象已經(jīng)創(chuàng)建,還沒有在其上調用start()方法。3、什么是線程的可運營狀態(tài)?答:當線程有資格運營,但調度程序還沒有把它選定為運營線程時線程所處的狀態(tài)。當start()方法調用時,線程一方面進入可運營狀態(tài)。在線程運營之后或者從阻塞、等待或睡眠狀態(tài)回來后,也返回到可運營狀態(tài)。4、什么是線程的死亡態(tài)?答:當線程的run()方法完畢時就認為它死去。這個線程對象也許是活的,但是,它已經(jīng)不是一個單獨執(zhí)行的線程。線程一旦死亡,就不能復生。假如在一個死去的線程上調用start()方法,會拋出java.lang.IllegalThreadStateException異常。5、調用join()方法有何作用?答:保證當前線程停止執(zhí)行,直到該線程所加入的線程完畢為止。然而,假如它加入的線程沒有存活,則當前線程不需要停止。6.現(xiàn)有字符串S=”hello,java!”,則以此字符串生成待發(fā)送DatagramPacket包dgp的語句是:答:Byte[]str=s.getbytes();DatagramPacketdgp=newDatagramPacket(str,str.length(),目的主機,目的端口);介紹使用javaSocket創(chuàng)建客戶端Socket的過程。?答:try{?Socketsocket=newSocket(目的主機,目的端口);
}catch(IOExceptione){
System.out.println("Error:"+e);
}
8、介紹使用javaServerSocket創(chuàng)建服務器端ServerSocket的過程。
答:ServerSocketserver=null;?try{?server=newServerSocket(監(jiān)聽端口);?}catch(IOExceptione){
System.out.println("cannotlistento:"+e);
}
Socketsocket=null;?try{?socket=server.accept();
}cat(yī)ch(IOExceptione){
System.out.println("Error:"+e);
}
9、寫出一種使用java流式套接式編程時,創(chuàng)建雙方通信通道的語句。答:PrintStreamos=newPrintStream(newBufferedOutputStreem(socket.getOutputStream()));
DataInputStreamis=newDat(yī)aInputStream(socket.getInputStream());?PrintWriterout=newPrintWriter(socket.getOutStream(),true);?BufferedReaderin=newButfferedReader(newInputSteramReader(Socket.getInputStream()));?10、對于建立功能齊全的Socket,其工作過程包含以下四個基本的環(huán)節(jié):
(1)創(chuàng)建Socket;
(2)打開連接到Socket的輸入/出流;?(3)按照一定的協(xié)議對Socket進行讀/寫操作;?(4)關閉Socket.
11、簡述基于TCP及UDP套接字通信的重要區(qū)別答:TCP,可靠,傳輸大小無限制,但是需要連接建立時間,差錯控制開銷大。?UDP,不可靠,差錯控制開銷較小,傳輸大小限制在64K以下,不需要建立連接。寫出DatagramSocket的常用構造方法:答:Dat(yī)agramSocket();
DatagramSocket(intprot);
DatagramSocket(intport,InetAddressladdr)
port指明socket所使用的端標語,假如未指明端標語,則把socket連接到本地主機上一個可用的端口。laddr指明一個可用的本地地址。13、介紹一下DatagramPacket的常用構造方法:?DatagramPacket(bytebuf[],intlength);?DatagramPacket(bytebuf[],intlength,InetAddressaddr,intport);
DatagramPacket(byte[]buf,intoffset,intlength);
Dat(yī)agramPacket(byte[]buf,intoffset,intlength,InetAddressaddress,intport);
其中,buf中存放數(shù)據(jù)報數(shù)據(jù),length為數(shù)據(jù)報中數(shù)據(jù)的長度,addr和port旨明目的地址,offset指明了數(shù)據(jù)報的位移量。?14、在接受端接受數(shù)據(jù)報的重要語句:答:bytebuf[]=newbyte[n];DatagramPacketpacket=newDat(yī)agramPacket(buf,n);?Socket.receive(packet);
15、寫出java程序中用Statement來執(zhí)行sql查詢與更新語句Stringsql;//表達查詢或更新的操作語句;
Statementsm=cn.createStat(yī)ement();//cn表達數(shù)據(jù)庫連接sm.executeQuery(sql);//執(zhí)行數(shù)據(jù)查詢語句(select)
sm.executeUpdat(yī)e(sql);//執(zhí)行數(shù)據(jù)更新語句(delete、update、insert、drop等)statement.close();16.什么叫流?流式輸入輸出有什么特點?17.Java流被分為字節(jié)流、字符流兩大流類,兩者有什么區(qū)別?18.File類有哪些構造函數(shù)和常用方法?16.答:所謂流是指同一臺計算機或網(wǎng)絡中不同計算機之間有序運動著的數(shù)據(jù)序列,Java把這些不同來源和目的的數(shù)據(jù)都統(tǒng)一抽象為數(shù)據(jù)流。數(shù)據(jù)流可分為輸入流和輸出流,輸入流代表從其他設備流入計算機的數(shù)據(jù)序列,輸出流代表從計算機流向外部設備的數(shù)據(jù)序列。流式輸入輸出的特點是數(shù)據(jù)的獲取和發(fā)送沿數(shù)據(jù)序列的順序進行,即每一個數(shù)據(jù)都必須等待排在它前面的數(shù)據(jù),等前面的數(shù)據(jù)讀入或送出之后才干被讀寫。所以流和隊列同樣,只能以“先進先出”的方式對其中的數(shù)據(jù)進行讀寫,而不能隨意選擇讀寫的位置。17.答:兩者都作為Object類的直接子類,基本輸入流(InputStream)和基本輸出流(OutputStream)是解決以8位字節(jié)為基本單位的字節(jié)流類;Reader和Writer類是專門解決16位字符流的類。18.答:構造函數(shù)有:(1)publicFile(Stringpathname):創(chuàng)建一個相應于參數(shù)pathname的File類對象。參數(shù)pathname是包含目錄和文獻名的字符串。假如沒有文獻名,則代表目錄。(2)publicFile(Stringparent,Stringchild):該構造函數(shù)將pathname提成兩部分parent和child,參數(shù)parent表達目錄或文獻所在途徑,參數(shù)child表達目錄或文獻名稱。(3)publicFile(Fileparent,Stringchild):該構造函數(shù)與上面一個不同在于將parent的參數(shù)類型由String變?yōu)椋苅le,代表parent是一個已經(jīng)創(chuàng)建的File類文獻對象(指向目錄)。常用方法有:(1)publicbooleancanWrite():返回文獻是否可寫。(2)publicbooleancanRead():返回文獻是否可讀。(3)publicbooleancreateNewFile():當文獻不存在時創(chuàng)建文獻。19.位置指針的作用是什么?RandomAccessFile類提供了哪些方法實現(xiàn)對指針的控制?19.答:要實現(xiàn)對文獻的隨機讀取,也就是在文獻的任何位置執(zhí)行讀寫數(shù)據(jù)的操作,需要一個指針來指定讀寫的位置。在創(chuàng)建RandomAccessFile類對象的同時,系統(tǒng)自動創(chuàng)建了一個指向這個文獻開頭的指針,當執(zhí)行讀寫操作后,指針自動指向被讀寫數(shù)據(jù)之后的第一個字節(jié)處。指針初始值是0,每讀/寫一個字節(jié),指針自動增長1。RandomAccessFile類提供了一些控制指針移動的方法。publiclonggetFilePointer();獲取當前指針指向文獻的位置。pulbicvoidseek(longpos);將指針移動到參數(shù)pos指定的位置。publicintskipBytes(intn);指針從當前位置向后移動n個字節(jié)位置,并返回指針實際移動的字節(jié)數(shù)。20、第二部分:分析程序功能或完畢程序1、分析下列程序功能importjava.io.*;classStreamTest{publicstat(yī)icvoidmain(String[]args)throwsException{FileOutputStreamfos=newFileOutputStream("testBuffer.txt");BufferedOutputStreambos=newBufferedOutputStream(fos);bos.write("HelloJava!".getBytes());bos.close();}}2、運用文獻輸入輸出流編寫一個實現(xiàn)文獻拷貝的程序,源文獻名和目的文獻名通過命令行參數(shù)傳入。答:importjava.io.*;classCopyFile{publicstaticvoidmain(String[]args){Stringfile1,file2;intch=0;try{file1=args[0];file2=args[1];FileInputStreamfis=newFileInputStream(file1);FileOutputStreamfos=newFileOutputStream(file2);while((ch=fis.read())!=-1)fos.write(ch);fis.close();fos.close();}catch(FileNotFoundExceptione){System.out.println("源文獻:未找到!");}cat(yī)ch(ArrayIndexOutOfBoundsExceptione){System.out.println("缺少運營參數(shù)!");System.exit(-1);}cat(yī)ch(IOExceptione){System.out.println(e.toString());}}}3、編寫一個程序,在當前目錄下創(chuàng)建一個子目錄test,在這個新創(chuàng)建的子目錄下創(chuàng)建一個文獻,并把這個文獻設立成只讀。3.答:importjava.io.*;publicclassNewFile{publicstat(yī)icvoidmain(Stringargs[]){Filef=newFile("test");if(f.exists()&&f.isDirectory())System.err.println("目錄:"+f.toString()+"已經(jīng)存在!");else{if(f.mkdir()){System.out.println("目錄"+f.getAbsolutePat(yī)h()+"創(chuàng)建結束!");Filef2=newFile(f,"my.txt");try{f2.createNewFile();f2.setReadOnly();}catch(IOExceptione){System.out.println(e.toString());}System.out.println("文獻:"+f2.getAbsoluteFile()+"創(chuàng)建結束!");}elseSystem.out.println("目錄"+f.getAbsoluteFile()+"創(chuàng)建失敗!");}}}4、編寫一個程序,從鍵盤輸入一串字符,記錄這串字符中英文字母、數(shù)字、其他符號的字符數(shù)。4.答:importjava.io.*;publicclassCount{publicstaticvoidmain(String[]args){intx=0,y=0,z=0;intch;try{while((ch=System.in.read())!='\r'){if(ch>='A'&&ch<='Z'||ch>='a'&&ch<='z')x++;elseif(ch>='0'&&ch<='9')y++;elsez++;}}catch(IOExceptione){System.out.println(e.toString());}System.out.println("英文字母:"+x);System.out.println("數(shù)字字符:"+y);System.out.println("其它字符:"+z);}}5.編寫一個程序,從鍵盤輸入一串字符,從屏幕輸出并將其存入a.txt文獻中。5.答:importjava.io.*;publicclassInFile{publicstat(yī)icvoidmain(String[]args){intch;try{FileOutputStreamout=newFileOutputStream("a.txt");while((ch=System.in.read())!='\r'){System.out.write(ch);out.write(ch);}out.close();System.out.write('\n');}catch(IOExceptione){System.out.println(e.toString());}System.out.println("輸出至文獻完畢!");}}6.編寫一個程序,從鍵盤輸入10個整數(shù),并將這些數(shù)據(jù)排序后在標準輸出上輸出。6.答:importjava.io.*;publicclassSort{publicstaticvoidmain(Stringargs[]){inta[]=newint[10];byteb[]=newbyte[10];intt;Stringstr;System.out.println("請輸入10個整數(shù):");try{for(inti=0;i<10;i++){System.out.print("No."+(i+1)+":");System.in.read(b);str=newString(b);str=str.trim();a[i]=Integer.parseInt(str);}}catch(IOExceptione){System.out.println(e.toString());}catch(NumberFormatExceptione){System.out.println(e.toString());}for(inti=0;i<9;i++)for(intj=i+1;j<10;j++){if(a[i]>a[j]){t=a[i];a[i]=a[j];a[j]=t;}}for(inti=0;i<10;i++)System.out.println(a[i]+"\t");}}下列程序用于顯示指定目錄下的子目錄及文獻名,請?zhí)顚懰鄙俚拇a;importjava.io.*;publicclasssy2_1{publicstat(yī)icvoidmain(Stringargs[]){Strings1,s2[];try{InputStreamReaderiin=newInputStreamReader(System.in);BufferedReaderbin=newBufferedReader(iin);System.out.println("請輸入一個文獻名:");s1=bin.readLine();//讀入文獻名Filef=newFile(s1);System.out.println(f.isDirectory());if(f.isDirectory())//判斷是否為目錄;{intn=(f.list()).length;?s2=newString[n]; s2=f.list();//獲取子目錄及文獻名;?for(inti=0;i<s2.length;i++) System.out.println(s2[i]);}}catch(IOExceptione){}}}8、下列程序向屏幕輸出文本文獻內容:請完畢所缺少的代碼importjava.io.*;classreadtxt{publicstaticvoidmain(String[]args){try{FileReaderf1=newFileReader("u.txt");BufferedReaderbf1=newBufferedReader(f1);Stringline;line=bf1.readLine();while(line!=null)//判斷所讀的一行內容是否為空;{System.out.println(line);line=bf1.readLine();//繼續(xù)讀入下一行}bf1.close();//關閉文獻的輸入流;}catch(IOExceptione){e.printStackTrace();}}}9、編寫程序實現(xiàn):程序運營后共有3個線程,分別輸出10次線程的名稱:main,thread-0,thread-1.答:略10、請編寫java程序,訪問答:publicclassURLReader{?publicstaticvoidmain(String[]args)throwsException{/聲明拋出所有例外
URLtirc=newURL("");//構建一URL對象?BufferedReaderin=newBufferedReader(newInputStreamReader(tirc.openStream()));
//使用openStream得到一輸入流并由此構造一個BufferedReader對象
StringinputLine;?while((inputLine=in.readLine())!=null)//從輸入流不斷的讀數(shù)據(jù),直到讀完為止?System.out.println(inputLine);//把讀入的數(shù)據(jù)打印到屏幕上?in.close();//關閉輸入流
}
}11、從鍵盤上輸入主機名稱,編寫類似ping的程序,測試連接效果。importjava.net.*;importjava.io.*;classPing{ publicstaticvoidmain(String[]args){System.out.println("請輸入ping主機名稱或地址:\n");try{ Stringhost=keyreadline();InetAddressip=InetAddress.getByName(host);longt1=System.currentTimeMillis();if(ip.isReachable(5000)){longt2=System.currentTimeMillis();System.out.println("\nReplyfrom"+ip.getHostAddress()+"time<="+(t2-t1)+"ms");System.out.println();}else{System.out.println("Requesttimedout.");}}cat(yī)ch(IOExceptione){System.out.println("Requesttimedout.");}}privat(yī)estaticStringkeyreadline(){BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));Stringstr=null;try{str=br.readLine();}catch(IOExceptione){e.printStackTrace();}returnstr;}}12、設服務器端程序監(jiān)聽端口為8629,當收到客戶端信息后,一方面判斷是否是“BYE”,若是,則立即向對方發(fā)送“BYE”,然后關閉監(jiān)聽,結束程序。若不是,則在屏幕上輸出收到的信息,并由鍵盤上輸入發(fā)送到對方的應答信息。請編寫程序完畢此功能。mportjava.net.*;importjava.io.*;classServer{publicServer(){try{ServerSocketss=newServerSocket(8629);System.out.println("服務器端已運營,等待客戶端連接:");Socketsocket=ss.accept();//接受客戶端的連接請求;BufferedReaderin=newBufferedReader(newInputStreamReader(socket.getInputStream()));PrintWriterout=newPrintWriter(socket.getOutputStream(),true);BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));Stringline;while(true){line=(in.readLine().trim());if(line.equals("BYE")){out.println("BYE");out.close();in.close();socket.close();br.close();ss.close();break;}System.out.println("客戶輸入為:"+line);System.out.println("請輸入回答:");line=br.readLine();//從鍵盤上輸入信息;out.println(line);//向對方發(fā)送信息}}catch(IOExceptione){}}publicstaticvoidmain(String[]args)throwsException{newServer();}}13、TCP客戶端需要向服務器端8629發(fā)出連接請求,與服務器進行信息交流,當收到服務器發(fā)來的是“BYE”時,立即向對方發(fā)送“BYE”,然后關閉連接,否則,繼續(xù)向服務器發(fā)送信息。importjava.io.*;importjava.net.*;classClient2{publicClient2(){try{Strings;Socketsocket=newSocket("服務器地址",8629);BufferedReaderin=newBufferedReader(newInputStreamReader(socket.getInputStream()));PrintWriterout=newPrintWriter(socket.getOutputStream(),true);BufferedReaderline=newBufferedReader(newInputStreamReader(System.in));while(true){System.out.println("請向服務器輸出一條字符串:");s=line.readLine();out.println(s);//向服務器發(fā)出信息;s=in.readLine().trim();//收到服務器發(fā)來的信息;System.out.println("服務器返回的信息是:");System.out.println(s);if(s.equals("BYE")){out.println("BYE");line.close();out.close();in.close();socket.close();break;}}}catch(IOExceptione){}}publicstaticvoidmain(String[]args){newClient2();}}14、UDP接受端importjava.io.*;importjava.net.*;classServer{publicstaticvoidmain(String[]args){newUDPServer();}}classUDPServer{publicUDPServer(){try{DatagramSocketsocket=newDatagramSocket(1986);//建立一個Socket連接System.out.println("服務器IP:"+InetAddress.getLocalHost().getHostAddress());//顯示服務器信息while(true){//接受byte[]instr=newbyte[200];DatagramPacketreceive=newDatagramPacket(instr,instr.length);socket.receive(receive);//接受客戶機發(fā)過來的數(shù)據(jù)Stringstr=newString(receive.getDat(yī)a());//提取數(shù)據(jù)if(str.trim().equals("BYE")){socket.close();break;}System.out.println("收到客戶端消息:"+str.trim());//打印客戶機消息//發(fā)送System.out.print("服務器發(fā)送消息:");str=newBufferedReader(newInputStr
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年住宅室內外一體化裝修設計合同范本2篇
- 《現(xiàn)場心肺復蘇術》課件
- 《廣告形式及分類》課件
- 南寧市2025年度商鋪租賃合同實施細則
- 《飲食調護與養(yǎng)生》課件
- 《高速鐵路同相供電》課件
- 文旅復合型人才的社會需求分析
- 2025年新型個人車輛抵押借款合同3篇
- 《職業(yè)衛(wèi)生》課件
- 銅產(chǎn)業(yè)發(fā)展實施方案
- 公司培訓員工職務犯罪預防講座之職務侵占
- 化學選修4《化學反應原理》(人教版)全部完整PP課件
- 《煤礦安全規(guī)程》專家解讀(詳細版)
- 招聘面試流程sop
- 建筑公司工程財務報銷制度(精選7篇)
- 工程設計方案定案表
- 最新2022年減肥食品市場現(xiàn)狀與發(fā)展趨勢預測
- 第一章-天氣圖基本分析方法課件
- 暖氣管道安裝施工計劃
- 體育實習周記20篇
- 初二物理彈力知識要點及練習
評論
0/150
提交評論