1. 程式人生 > >java IO流面試題和選擇題

java IO流面試題和選擇題

1.PrintStream、BufferedWriter、PrintWriter的比較? 
PrintStream類的輸出功能非常強大,通常如果需要輸出文字內容,都應該將輸出流包裝成PrintStream後進行輸出。它還提供其他兩項功能。與其他輸出流不同,PrintStream 永遠不會丟擲 IOException;而是,異常情況僅設定可通過 checkError 方法測試的內部標誌。另外,為了自動重新整理,可以建立一個 PrintStream
BufferedWriter:將文字寫入字元輸出流,緩衝各個字元從而提供單個字元,陣列和字串的高效寫入。通過write()方法可以將獲取到的字元輸出,然後通過newLine()進行換行操作。BufferedWriter中的字元流必須通過呼叫flush方法才能將其刷出去。並且BufferedWriter只能對字元流進行操作。如果要對位元組流操作,則使用BufferedInputStream。

 PrintWriter的println方法自動新增換行,不會拋異常,若關心異常,需要呼叫checkError方法看是否有異常發生,PrintWriter構造方法可指定引數,實現自動重新整理快取(autoflush);

2.java中有幾種型別的流?JDK為每種型別的流提供了一些抽象類以供繼承,請說出他們分別是哪些類?
位元組輸入流:InputStream,位元組輸出流:OutputStream

字元輸入流:Reader,字元輸出流:Writer

3.什麼是java序列化,如何實現java序列化?
Java物件的序列化指將一個java物件寫入OI流中,與此對應的是,物件的反序列化則從IO流中恢復該java物件。
如果要讓某個物件支援序列化機制,則必須讓它的類是可序列化的,為了讓某個類是可序列化的,該類必須實現Serializable介面或Externalizable介面


4.解釋一下java.io.Serializable介面(面試常考)

類通過實現 java.io.Serializable 介面以啟用其序列化功能。未實現此介面的類將無法使其任何狀態序列化或反序列化。

1. 讀寫原始資料,一般採用什麼流?(AC )
A InputStream
B DataInputStream
C OutputStream
D BufferedInputStream
2. 為了提高讀寫效能,可以採用什麼流?( DF)
A InputStream
B DataInputStream
C BufferedReader
D BufferedInputStream
E OutputStream
F BufferedOutputStream
3. 對各種基本資料型別和String型別的讀寫,採用什麼流?( AD)
A DataInputStream
B BufferedReader
C PrintWriter
D DataOutputStream
E ObjectInputStream
F ObjectOutputStream
4. 能指定字元編碼的I/O流型別是:(BH )
A Reader
B InputStreamReader
C BufferedReader
D Writer
E PrintWriter
F ObjectInputStream
G ObjectOutputStream
H OutputStreamWriter
5. File型別中定義了什麼方法來判斷一個檔案是否存在?( D)
A createNewFile
B renameTo
C delete
D exists
6. File型別中定義了什麼方法來建立一級目錄?( C)
A createNewFile
B exists
C mkdirs
D mkdir
7. 對文字檔案操作用什麼I/O流?(AD )
A FileReader
B FileInputStream
C RandomAccessFile
D FileWriter
8. 在unix伺服器www.openlab.com.cn上提供了基於TCP的時間服務應用,該應用使用port為13。建立連線到此伺服器的語句是:(A )
A Socket s = new Socket(“www.openlab.com.cn”, 13);
B Socket s = new Socket(“www.openlab.com.cn:13”);
C Socket s = accept(“www.openlab.com.cn”, 13);
9. 建立一個TCP客戶程式的順序是:(DACBE )
A 獲得I/O流
B 關閉I/O流
C 對I/O流進行讀寫操作
D 建立socket
E 關閉socket
10. 建立一個TCP服務程式的順序是:(BCADEGF )
A 建立一個服務執行緒處理新的連線
B 建立一個伺服器socket
C 從伺服器socket接受客戶連線請求
D 在服務執行緒中,從socket中獲得I/O流
E 對I/O流進行讀寫操作,完成與客戶的互動
F 關閉socket
G 關閉I/O流
11. Java UDP程式設計主要用到的兩個型別是:( BD)
A UDPSocket
B DatagramSocket
C UDPPacket
D DatagramPacket
12. TCP/IP是一種:( B)
A 標準 
B 協議  
C 語言  
D 演算法