一:内存流
1.ByteArrayOutputStream (内存输出流)
public ByteArrayOutputStream()
public byte[] toByteArray() 建立一个新分配的 byte 数组。其大小是此输出流的当前大小,而且缓冲区的有效内容已复制到该数组中。
public String toString()
2.ByteArrayInputStream (内存输入流)
public ByteArrayInputStream(byte[] buf)java
二:数据流
1.DataOutputStream(数据输出流)
能够将基本数据类型以二进制的方式写入,附加数据类型。
DataOutputStream(OutputStream out) 数组
2.DataInputStream(数据输入流)
DataInputStream(InputStream in)
根据数据输出流的写入顺序依次读取数据。dom
三:序列化与反序列化
序列化:将对象转化成二进制形式的过程。易于保存、易于传输。
反序列化:将二进制数据转化成对象的过程。
只有实现了java.io.Serializable接口的类的对象才具备序列化和反序列化的功能。spa
1.ObjectOutputStream(对象输出流)
ObjectOutputStream(OutputStream out)
writeObject(Object obj) 将指定的对象写入 ObjectOutputStream,封装了序列化的过程
2.ObjectInputStream(对象输入流)
ObjectInputStream(InputStream in)
Object readObject() 封装了反序列化的功能对象
所谓序列化,指的是序列化对象中的属性(不包括方法和静态属性)。
被transient或static修饰的属性不能被序列化。接口
serialVersionUID属性必须一致,才能成功进行序列化与反序列化。
若是不显示声明serialVersionUID属性,则编译器会默认自动生成,可是
由编译器生成的serialVersionUID属性的值会很是敏感。ip
四:RandomAccessFile类 (了解)
RandomAccessFile(File file, String mode)
public int skipBytes(int n) 尝试跳过输入的n个字节以丢弃跳过的字节
public long getFilePointer()内存
五:StringReader
StringReader(String s)get