Java中的流分为两种:java
字节流:数据流中最小的数据单元是字节;数组
字符流:数据流中最小的数据单元是字符,Java中的字符是Unicode编码,一个字符占用两个字节。dom
FileInputStream.read(byte b[])编码
FileOutputStream.write(byte b[])spa
程序从输入流(Input Stream)读取数据源至buffer; 程序向输出(Output Stream)流写入buffer数据. 采用数据流的目的就是使得输出输入独立于设备,并不关心数据的目的和来源是何种设备。3d
装饰模式code
ByteArrayOutputStream: 能够捕获内存缓冲区的数据,转换成字节数组。对象
ByteArrayInputStream: 能够将字节数组转化为输入流。blog
ObjectInputStream: 从输入流中读取对象;能够把InputStream包装到ObjectInputStream中,而后就能够从中读取对象了;(序列化对象能够重写:public final Object readObject() throws IOException, ClassNotFoundException{})内存
ObjectOutputStream:把对象写入到输出流中;能够把OutputStream包装到ObjectOutputStream中,而后就能够把对象写入到该输出流中了 ( 序列化对象能够重写: public final void writeObject(Object obj) throws IOException {})