問題1:Java中流的分類有哪些?
1、從流動(dòng)方向分為輸入流和輸出流
2、從讀取類型分為字節(jié)流和字符流
3、從發(fā)生的源頭分為節(jié)點(diǎn)流和過濾流
問題2:字節(jié)流InputStream和OutputStream的子類分別有哪些?說明其使用場景。與其對應(yīng)的字符流分別有哪些?
問題3:字節(jié)流與字符流的轉(zhuǎn)化是怎樣的?Java對此提供了哪些支持?
輸入字節(jié)流轉(zhuǎn)化為字符流需要用到InputStreamReader的構(gòu)造方法
InputStreamReader(InputStream in)
InputStreamReader ins=new InputStreamReader(System.in);
InputStreamReader ins=new InputStreamReader(new FileInputStream("test.txt"));
輸出字符流轉(zhuǎn)化為字節(jié)流需要用到OutputStreamWriter或PrintWriter的構(gòu)造方法:
OutputStreamWriter(OutputStream out)
PrintWriter(OutputStream out)
OutputStreamWriter outs=new OutputStreamWriter(new FileOutputStream("test.txt"));
問題4:Java中的過濾流(流的裝配)有什么作用?請編程舉例說明常用的過濾流。
過濾流BufferedReader的使用:用于緩存字符流,可以一行一行的讀
import java.io.*;
public class inDataSortMaxMinIn{
public static void main(String[] args){
try{
BufferedReader keyin=new BufferedReader(new InputStreamReader(System.in));
String c1;
int i=0;
int[] e=new int[10];
while(i<10){
try{
c1=keyin.readLine();
e[i]=Integer.parseInt(c1);
i++;
}
catch(NumberFormatException ee){
System.out.println("請輸入正確的數(shù)字!");
}
}
}
catch(Exception e){
System.out.println("系統(tǒng)有錯(cuò)誤");
}
}
}
過濾流DataInputStream和DataOutputStream的使用:可以從字節(jié)流中寫入、讀取Java基本數(shù)據(jù)類型,不依賴于機(jī)器的具體數(shù)據(jù)類型,方便存儲和恢復(fù)數(shù)據(jù)
import java.io.*;
public class DataStream {
public static void main(String[] args)throws Exception{
try {
DataOutputStream dos = new DataOutputStream(new BufferedOutputStream(new FileOutputStream("test.txt")));
dos.writeInt(3);//寫入整型
dos.writeDouble(3.14);//寫入浮點(diǎn)型
dos.writeUTF(“hello”);//寫入字符串
dos.close();
DataInputStream dis = new DataInputStream(new BufferedInputStream(new FileInputStream("test.txt")));
System.out.println(dis.readInt()); //讀取整型,輸出3
System.out.println(dis.readDouble()); //讀取浮點(diǎn)型,輸出3.14
System.out.println(dis.readUTF()); //讀取字符串,輸出hello
dis.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
過濾流PrintWriter的使用:可以向該字符流中寫入Java基本數(shù)據(jù)類型,用于包裝輸出字符流對象
import java.io.*;
public class PrintWrit{
public static void main(String[] args)throws Exception{
PrintWriter out=new PrintWriter(new BufferedWriter(new FileWriter("foo.txt")));
out.print("hello");//寫入字符串
out.print(3);//寫入整型
out.close();//關(guān)閉流,系統(tǒng)自動(dòng)將緩沖區(qū)內(nèi)容flush
}
}
問題5:什么是對象的序列化和反序列化?Java對此提供了哪些支持?對象序列化用于什么情形?
1、序列化:指把堆內(nèi)存中的 Java 對象數(shù)據(jù),通過某種方式把對象存儲到磁盤文件中或者傳遞給其他網(wǎng)絡(luò)節(jié)點(diǎn)(在網(wǎng)絡(luò)上傳輸)。也就是將數(shù)據(jù)結(jié)構(gòu)或?qū)ο筠D(zhuǎn)換成二進(jìn)制數(shù)據(jù)流的過程。
2、反序列化:與序列化相反,指把磁盤文件中的對象數(shù)據(jù)或者把網(wǎng)絡(luò)節(jié)點(diǎn)上的對象數(shù)據(jù),恢復(fù)成Java對象模型的過程。也就是將在序列化過程中所生成的二進(jìn)制數(shù)據(jù)流轉(zhuǎn)換成數(shù)據(jù)結(jié)構(gòu)或者對象的過程
Java對序列化和反序列化的支持:Java的IO包中對對象的序列化和反序列化提供了兩個(gè)類,分別是ObjectOutputStream和ObjectInputStream。
使用場景:1、把內(nèi)存中的對象保存到一個(gè)文件或數(shù)據(jù)庫中
2、網(wǎng)絡(luò)上傳輸對象
3、通過RMI傳輸對象
問題6:Java的File類表示什么?有什么作用?
File類是文件路徑的抽象表示。通過File類可以訪問文件屬性,可以創(chuàng)建空文件或目錄。
問題7:Java對文件的讀寫分別提供了哪些支持?
1.File 文件(或目錄)路徑名字的抽象表示
2.FileDescriptor 代表一個(gè)打開文件的文件描述
3.FileFilter & FilenameFilter 接口
4.FileInputStream 以字節(jié)流的形式順序讀文件
5.FileReader 以字符流的形式順序讀文件
6.FileOutputStream 以字節(jié)流的形式順序?qū)懳募?br />7.FileWriter 以字符流的形式順序?qū)懳募?br />8.RandomAccessFile提供對文件的隨機(jī)訪問支持
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧
本文名稱:Java第十章復(fù)習(xí)I/O輸入輸出-創(chuàng)新互聯(lián)
本文網(wǎng)址:http://aaarwkj.com/article16/ccdjgg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、軟件開發(fā)、用戶體驗(yàn)、做網(wǎng)站、電子商務(wù)、定制開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容