字节流:InputStream OutputStream (抽象类,只提供方法声明)
文件流:FileInputStream FileOutputStream (子类)
流可以在try中关闭,(close()),标准是在finally中关闭,不过从JDK7开始,所有的流都实现了一个借口叫做AutoCloseable,任何类实现了这个接口,都可以在try()中进行实例化。并且在try,catch,finally结束的时候自动关闭,回收相关资源。
字符流:FileReader FileWriter
缓存流:BufferedReader PrintWriter
flush()可以强制把缓存中的数据写入硬盘,无论缓存是否已满。
数据流:DataInputStream DataOutputStream
readBoolean(); writeBoolean(); 读(写)布尔值
readInt(); writeInt(); 读(写)整数
readUTF(); writeUTF(); 读(写)字符串
要用DataInputStream 读取一个文件,这个文件必须是由DataOutputStream 写出的,否则会出现EOFException,因为DataOutputStream 在写出的时候会做一些特殊标记,只有DataInputStream 才能成功的读取。
对象流:ObjectOutputStream ObjectInputStream
把一个对象序列化有一个前提是:这个对象的类,必须实现了Serializable接口