方向:
输入流(Input)——读取文件
①输入流是指建立在文件或其他文件流上的用来对目标文件进行读取的文件流。
②输入流只能对文件进行读取。
③读取二进制文件使用字节输入流,读取文本文件使用文本输入流。
输出流(OutPut)——写入文件
内容:
字节流(Byte)——读写二进制文件
字符流(char)——读写文本文件
方式:
节点流——针对文件建立
处理流——针对其他文件流建立
字节输入流主要方法:
public abstract int Read() throws IOException
读取文件,只返回读取到的字节数,不返回读取到的字节内容
public int read(byte[] b) throws IOException
将读取到的二进制字节存储到byte中进行保存,返回实际读到的二进制字节数
public int read(byte[] b,int off,int len) throws IOException
将读取到的二进制字节存储到byte中进行保存,off表示存储时数据从数组第几个索引开始存,一般为0,len表示读多少个数据,一般为byte数组长度
二进制缓冲输入流(BufferedInputStream) 字符输入流构造器:
Reader reader=new FileReader(filename)
主要方法:public abstract int Read() throws IOException
读取文件,只返回读取到的字节数,不返回读取到的字节内容
public int read(char[] c) throws IOException
将读取到的二进制字节存储到char[]中进行保存,返回实际读到的二进制字节数
public int read(char[] b,int off,int len) throws IOException
将读取到的二进制字节存储到byte中进行保存,off表示存储时数据从数组第几个索引开始存,一般为0,len表示读多少个数据,一般为byte数组长度
字节输出流构造器:
Write write=new FileWrite(filename);//默认覆盖
Write write=new FileWrite(filename,true);第二个参数为true表示在文章末尾追加
主要方法:public void write(int b)throws IOException
public void write(byte[] b)throws lOException
public void write(byte[ b,int off,int len)throws lOException
public void close() throws I0 DException
1、建立目标文件
2、基于目标文件建立文件流
3、进行读写操作
4、关闭相关文件流对象,释放资源(要注意文件的读写操作异常处理)
序列化操作将一个数据以Java对象的形式存储到文件中或从目标文件中获取一个Java对象的操作被称为序列化操作,能够被序列化的对象称之为序列化对象
Java规定任何实现Serializable接口的类,被看做是序列化类,此类的实例既是一个序列化对象。序列化对象可以通过序列化输入和输出流进行读写操作,通常序列化类必需提供一个公共无参的构造器,在反序列化(读取序列化对象)中心N使用公共无参构造器创建Java对象。
任何静态对象都不会被序列化
序列化文件流
ObjectOutputStream:序列化流,将一个java对象保存到目标文件中
ObjectInputStream:反序列化流,从目标文件读取序列化对象到内存



