Java 試題七
1、java中有幾種類型的流?JDK為每種類型的流提供了一些抽象類以供繼承,請說出他們分別是哪些類?
答:字節流,字符流。
字節流繼承于InputStream、OutputStream,
字符流繼承于Reader、Writer。在java.io包中還有許多其他的流,主要是為了提高性能和使用方便。
2、什么是java序列化,如何實現java序列化?
答:序列化就是一種用來處理對象流的機制,所謂對象流也就是將對象的內容進行流化。
可以對流化后的對象進行讀寫操作,也可將流化后的對象傳輸于網絡之間。
序列化是為了解決在對對象流進行讀寫操作時所引發的問題。
序列化的實現:將需要被序列化的類實現Serializable接口,該接口沒有需要實現的方法,implements Serializable只是為了標注該對象是可被序列化的,然后使用一個輸出流(如:FileOutputStream)來構造一個ObjectOutputStream(對象流)對象,接著,使用ObjectOutputStream對象的writeObject(Object obj)方法就可以將參數為obj的對象寫出(即保存其狀態),要恢復的話則用輸入流。
3、在Java中,輸入輸出的處理需要引入的包是java.io,
面向字節的輸入輸出類的基類是Inputstream和Outputstream。
面向字符的輸入輸出類的基類是Reader和Writer。
4、使用處理流的優勢有哪些?如何識別所使用的流是處理流還是節點流?
【答案】
【優勢】對開發人員來說,使用處理流進行輸入/輸出操作更簡單;使用處理流的執行效率更高。
【判別】
處理流的構造器的參數不是一個物理節點,而是已經存在的流。而節點流都是直接以物理IO及節點作為構造器參數的。
5、填空:下列程序將從file1.dat文件中讀取全部數據,然后寫到file2.dat文件中。
importjava.io.File;
importjava.io.FileInputStream;
importjava.io.FileNotFoundException;
importjava.io.FileOutputStream;
importjava.io.IOException;public class FileStreamInOut {public static void main(String[] args){try{File inFile = new File("_________");File outFile = new File("_________");FileInputStream fis = new FileInputStream(_________);FileOutputStream fos = new FileOutputStream(_________);int c;while((c = fis.read())!=-1){fos.write(c);}_____.close();_____.close();}catch(FileNotFoundException e){System.out.println("FileStreamsTest:"+e);}catch(IOException e){System.out.println("FileStreamTest"+e);}}
}
6、Java中有幾種類型的流?JDK為每種類型的流提供了一些抽象類以供繼承,請指出它們分別是哪些類?
【答案】Java中按所操作的數據單元的不同,分為字節流和字符流。
字節流繼承于InputStream和OutputStream類,字符流繼承于Reader和Writer。
按流的流向的不同,分為輸入流和輸出流。
按流的角色來分,可分為節點流和處理流。緩沖流、轉換流、對象流和打印流等都屬于處理流,使得輸入/輸出更簡單,執行效率更高。
7、什么是標準的I/O流?
在java語言中,用stdin表示鍵盤,用stdout表示監視器。他們均被封裝在System類的類變量in 和out中,
對應于系統調用System.in和System.out。這樣的兩個流加上System.err統稱為標準流,它們是在System類中聲明的3個類變量:
public static InputStream in
public static PrintStream out
public static PrintStream err
8、選擇
1.計算機處理的數據最終分解為▁▁的組合。
A 0
B 數據包
C 字母
D 1
2.計算機處理的最小數據單元稱為▁▁。
A 位
B 字節
C 兆
D 文件
3.字母、數字和特殊符號稱為▁▁。
A 位
B 字節
C 字符
D 文件
4.▁▁文件流類的 close 方法可用于關閉文件。
A FileOutputStream
B FileInputStream
C RandomAccessFile
D FileWrite
5.RandomAccessFile 類的▁▁方法可用于從指定流上讀取整數。
A readInt
B readLine
C seek
D close
6.RandomAccessFile 類的▁▁方法可用于從指定流上讀取字符串。
A readInt
B readLine
C seek
D close
7.RandomAccessFile 類的▁▁方法可用于設置文件定位指針在文件中的位置。
A readInt
B readLiIne
C seek
D close
8.在FilterOutputStream類的構造方法中,下面哪個類是合法:
A File
B InputStream
C OutputStream
D FileOutputStream
【答案】
1.難度:容易答案:AD 知識點:計算機最終能處理的數據只能為 0 和 1。
2.難度:容易答案:B 知識點:計算機處理的最小數據單元是字節。
3.難度:容易答案:C 知識點:字符的概念。
4.難度:適中答案: ABC 知識點:FileOutStream、FileInputStream、RandomAccessFile
文件流類的 close 方法可用于關閉文件。
5.難度:適中答案:A 知識點:readInt方法的使用。
6.難度:適中答案:B 知識點:readLIne方法的使用。
7.難度:適中答案:C 知識點:seek 方法的使用。
8.難度:適中答案:C 知識點:在FilterOutputStream類中只有一種結構:public
FilterOutputStream(OutputStream)。