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