网站建设开发费用怎样入账,成都业之峰装饰公司怎么样,世界贸易网,软件开发项目管理系统解决方案具体操作分成面向字节(Byte)和面向字符(Character)两种方式。
如下图所示#xff1a; IO流的三种分类方式 IO流的层次结构
IO流的常用基类有#xff1a;
字节流的抽象基类#xff1a;InputStream和OutputStream#xff1b;
字符流的抽象基类#xff1a;Reader和Writer…具体操作分成面向字节(Byte)和面向字符(Character)两种方式。
如下图所示 IO流的三种分类方式 IO流的层次结构
IO流的常用基类有
字节流的抽象基类InputStream和OutputStream
字符流的抽象基类Reader和Writer。
注意由这四个类派生出来的子类名称均以其父类名作为子类名的后缀以前缀为其功能。如InputStream的子类——FileInputStreamReader的子类——FileReader。 1) 字节流
InputStream 与 OutputStream
InputStream 是所有字节输入流的父类其定义了基础的读取方法
OutputStream 是所有字节输出流的父类其定义了基础的写出方法包含
文件流
FileOutputStream 是文件的字节输出流我们使用该流可以以字节为单位将数据写入文件(默认覆盖模式第二个参数设施为 true 可改变为追加模式)。 FileInputStream 是文件的字节输入流我们使用该流可以以字节为单位读取文件内容。
缓冲流
BufferedOutputStream 缓冲字节输出流需用flush方法将缓存的字节写出或在关闭流时一次性写出。
BufferedInputStream 是缓冲字节输入流。
对象流
ObjectOutputStream 是用来对对象进行序列化的输出流。
ObjectInputStream 是用来对对象进行反序列化的输入流。 2) 字符流Reader 和 Writer
Reader 是所有字符输入流的父类。
Writer 是所有字符输出流的父类。
字符流是以字符 (char) 为单位读写数据。一次处理一个 unicode。字符流都是高级流其底层是依靠字节流进行读写数据。
包含转换流
InputStreamReader字符输入流使用该流可以设置字符集
OutputStreamWriter字符输出流使用该流可以设置字符集字符缓冲流
PrintWriter 具有自动行刷新的缓冲该字符输出流需第二个参数设置为 true。
BufferedReader 是缓冲字符输入流
注PrintWriter 写出字符串时通常不用 Writer 提供的 write( ) 相关方法而是用重载的 print 和println 方法。
BufferedReader 读取字符串时可用 readLine()连续读取一行字符串直到读取到换行符为止返回的字符串中不包含该换行符未读到返回 null。 3序列化流ObjectInputStream和ObjectOutputStream
对象的输出流将指定的对象写入到文件的过程就是将对象序列化的过程
对象的输入流将指定序列化好的文件读出来的过程就是对象反序列化的过程。
既然对象的输出流将对象写入到文件中称之为对象的序列化那么可想而知对象所对应的class必须要实现Serializable接口。查看源码可得知Serializable接口没有任何的方法只是作为一个标识接口存在。