輸入流: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();