問題1:Java中流的分類有哪些?
1、從流動方向分為輸入流和輸出流
2、從讀取類型分為字節流和字符流
3、從發生的源頭分為節點流和過濾流
問題2:字節流InputStream和OutputStream的子類分別有哪些?說明其使用場景。與其對應的字符流分別有哪些?
問題3:字節流與字符流的轉化是怎樣的?Java對此提供了哪些支持?
輸入字節流轉化為字符流需要用到InputStreamReader的構造方法
InputStreamReader(InputStream in)
InputStreamReader ins=new InputStreamReader(System.in);
InputStreamReader ins=new InputStreamReader(new FileInputStream("test.txt"));
輸出字符流轉化為字節流需要用到OutputStreamWriter或PrintWriter的構造方法:
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("請輸入正確的數字!");
}
}
}
catch(Exception e){
System.out.println("系統有錯誤");
}
}
}
過濾流DataInputStream和DataOutputStream的使用:可以從字節流中寫入、讀取Java基本數據類型,不依賴于機器的具體數據類型,方便存儲和恢復數據
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);//寫入浮點型
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()); //讀取浮點型,輸出3.14
System.out.println(dis.readUTF()); //讀取字符串,輸出hello
dis.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
過濾流PrintWriter的使用:可以向該字符流中寫入Java基本數據類型,用于包裝輸出字符流對象
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();//關閉流,系統自動將緩沖區內容flush
}
}
問題5:什么是對象的序列化和反序列化?Java對此提供了哪些支持?對象序列化用于什么情形?
1、序列化:指把堆內存中的 Java 對象數據,通過某種方式把對象存儲到磁盤文件中或者傳遞給其他網絡節點(在網絡上傳輸)。也就是將數據結構或對象轉換成二進制數據流的過程。
2、反序列化:與序列化相反,指把磁盤文件中的對象數據或者把網絡節點上的對象數據,恢復成Java對象模型的過程。也就是將在序列化過程中所生成的二進制數據流轉換成數據結構或者對象的過程
Java對序列化和反序列化的支持:Java的IO包中對對象的序列化和反序列化提供了兩個類,分別是ObjectOutputStream和ObjectInputStream。
使用場景:1、把內存中的對象保存到一個文件或數據庫中
2、網絡上傳輸對象
3、通過RMI傳輸對象
問題6:Java的File類表示什么?有什么作用?
File類是文件路徑的抽象表示。通過File類可以訪問文件屬性,可以創建空文件或目錄。
問題7:Java對文件的讀寫分別提供了哪些支持?
1.File 文件(或目錄)路徑名字的抽象表示
2.FileDescriptor 代表一個打開文件的文件描述
3.FileFilter & FilenameFilter 接口
4.FileInputStream 以字節流的形式順序讀文件
5.FileReader 以字符流的形式順序讀文件
6.FileOutputStream 以字節流的形式順序寫文件
7.FileWriter 以字符流的形式順序寫文件
8.RandomAccessFile提供對文件的隨機訪問支持
你是否還在尋找穩定的海外服務器提供商?創新互聯www.cdcxhl.cn海外機房具備T級流量清洗系統配攻擊溯源,準確流量調度確保服務器高可用性,企業級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧
本文名稱:Java第十章復習I/O輸入輸出-創新互聯
本文網址:http://www.yijiale78.com/article16/ccdjgg.html
成都網站建設公司_創新互聯,為您提供建站公司、軟件開發、用戶體驗、做網站、電子商務、定制開發
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯