天天看點

輸入流:InputStream和reader;

輸出流:OutputStream和Writer;

按處理資料單元分:

位元組流: byte[] InputStream和OutputStream;

字元流:reader和Writer;

按功能分:

節點流:可以直接從資料源或目的地讀寫資料。

處理流(包裝流):不直接連接配接到資料源或目的地,是其他流進行封裝,目的主要是簡化操作和提高性能,輔助節點流。

文本檔案的讀寫:char[]

用FileInputStream和FileOutputStream讀寫;

用BufferedReader和BufferedWriter讀寫;

二進制檔案的讀寫:

用DataInputStream和DataOutputStream讀寫;

對象的讀寫:

用ObjectInputStream和ObjectOutputStream讀寫;

序列化和反序列化:

序列化:必須實作Serialiable接口

序列化:将記憶體中的對象轉換為流

反序列化:将流轉換為記憶體中的對象

目的:持久化對象,将對象在網絡上進行傳輸

類必須實作Serializable接口;

不需要序列化的字段前加transient

例如:

Xuliehua n=new Xuliehua(“張三”);

//序列化

ObjectOutputStream cv=new ObjectOutputStream(new FileOutputStream(“e:abc.txt”));

cv.writeObject(n);

cv.close();

//反序列化

ObjectInputStream sb=new ObjectInputStream(new FileInputStream(“e:abc.txt”));

Xuliehua b=(Xuliehua) sb.readObject();

System.out.println(b);

sb.close();

繼續閱讀