1,java中有幾種類型的流?JDK為每種類型的流提供了一些抽象類以供繼承,請說出他們分別是哪些類?
答:字節(jié)流,字符流。
字節(jié)流繼承于InputStream OutputStream,
字符流繼承于Reader Writer。在java.io包中還有許多其他的流,主要是為了提高性能和使用方便。
2.什么是java序列化,如何實(shí)現(xiàn)java序列化?
答:序列化就是一種用來處理對象流的機(jī)制,所謂對象流也就是將對象的內(nèi)容進(jìn)行流化。
可以對流化后的對象進(jìn)行讀寫操作,也可將流化后的對象傳輸于網(wǎng)絡(luò)之間。
序列化是為了解決在對對象流進(jìn)行讀寫操作時(shí)所引發(fā)的問題。
序列化的實(shí)現(xiàn):將需要被序列化的類實(shí)現(xiàn)Serializable接口,該接口沒有需要實(shí)現(xiàn)的方法,
implements Serializable只是為了標(biāo)注該對象是可被序列化的,然后使用一個(gè)輸出流(如:FileOutputStream)來構(gòu)造
一個(gè)ObjectOutputStream(對象流)對象,接著,使用ObjectOutputStream對象的writeObject(Object obj)方法就可以
將參數(shù)為obj的對象寫出(即保存其狀態(tài)),要恢復(fù)的話則用輸入流。
在Java中,輸入輸出的處理需要引入的包是java.io,
面向字節(jié)的輸入輸出類的基類是Inputstream和Outputstream。
面向字符的輸入輸出類的基類是Reader和Writer。
3.使用處理流的優(yōu)勢有哪些?如何識別所使用的流是處理流還是節(jié)點(diǎn)流?
【答案】
【優(yōu)勢】對開發(fā)人員來說,使用處理流進(jìn)行輸入/輸出操作更簡單;使用處理流的執(zhí)行效率更高。
【判別】
處理流的構(gòu)造器的參數(shù)不是一個(gè)物理節(jié)點(diǎn),而是已經(jīng)存在的流。而節(jié)點(diǎn)流都是直接以物理IO及節(jié)點(diǎn)作為構(gòu)造器參數(shù)的。
填空:下列程序?qū)膄ile1.dat文件中讀取全部數(shù)據(jù),然后寫到file2.dat文件中。
4.Java中有幾種類型的流?JDK為每種類型的流提供了一些抽象類以供繼承,請指出它們分別是哪些類?
【答案】Java中按所操作的數(shù)據(jù)單元的不同,分為字節(jié)流和字符流。
字節(jié)流繼承于InputStream和OutputStream類,字符流繼承于Reader和Writer。
按流的流向的不同,分為輸入流和輸出流。
按流的角色來分,可分為節(jié)點(diǎn)流和處理流。緩沖流、轉(zhuǎn)換流、對象流和打印流等都屬于處理流,使得輸入/輸出更簡單,執(zhí)行效率更高。
什么是標(biāo)準(zhǔn)的I/O流?
在java語言中,用stdin表示鍵盤,用stdout表示監(jiān)視器。他們均被封裝在System類的類變量in 和out中,
對應(yīng)于系統(tǒng)調(diào)用System.in和System.out。這樣的兩個(gè)流加上System.err統(tǒng)稱為標(biāo)準(zhǔn)流,它們是在System類中聲明的3個(gè)類變量:
public static InputStream in
public static PrintStream out
public static PrintStream err
以上就是長沙中公優(yōu)就業(yè)java培訓(xùn)機(jī)構(gòu)的小編針對“大家都在找的Java io練習(xí)題”的內(nèi)容進(jìn)行的回答,希望對大家有所幫助,如有疑問,請?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。