5.10JavaIo流四大抽象类

5.10JavaIo流四大抽象类

io流是input和output字节流

两大类

面向接口编程

面向父类编程(多态)

特点:

  • 把握父类

  • 实现类关注特点

对输入输出流分类
处理数据
  • 字节流--->处理音频、视频、excel使用字节流

  • 字符流--->处理纯文本,使用字符流

能使用字符处理的地方全部都可以使用字节流处理,能使用字节流处理的地方不一定能使用字符流处理

流向
  • 输入流--->reader

  • 输出流--->write

以程序为中心,进入程序称之为输入流。离开程序称之为输出流

流的功能
  • 始终处于第一线的流称之为--->节点流--->ByteArray、file是节点流

  • 在节点流的基础上进行包装--->处理流--->除了节点流以外的可以理解为处理流

流的操作步骤都是差不多的

四个抽象类

抽象类说明常用方法
InputStream 字节输入流的父类,数据单位为字节 int read() void close()
OutputStream 字节输出流的父类,数据单位为字节 void write(int) void flush() void close()
Reader 字符输入流的父类,数据单位为字符 int read() void close()
Writer 字符输出流的父类,数据单位为字符 void write(String) void flush() void close

字节流可以处理一些形式的数据(包括视频、音频等等)

InputStream---输入流超类

源码当中的特点:

  • 实现了closeable接口(Java的底层是JVM,Java程序不能直接和操作系统打交道,所以只能向操作系统申请操作)

  • Java--->文件--->简历了联系--->java虚拟机无法调用垃圾回收机制只能去申请

  • closeable接口继承了AutoCloseable自动关闭接口,在该接口当中有一个关闭方法

常用方法:--->有普通方法和抽象方法

  • void close();--->作用:关闭此输入流并释放与流相关联的任何系统资源

  • abstract int read() throws Exception;--->抽象方法--->作用:从输入流读取数据的下一个字节(返回是int是字节)--->一个一个的去找

  • int read(byte[] b);--->作用:从输入流中读取一些字节数,并将它们存储到缓存器阵列b中(返回的是int因为byte可以转成int)--->一段一段的去找

OutputStream---输出流超类

源码当中的特点:

  • 实现了closeable接口和flushable接口--->强制刷新,避免数据停留在内存中,如果数据不间断的读取每一次都要进行flush操作

常用方法:--->有普通方法和抽象方法

  • void close();--->释放系统资源

  • void flush();--->作用:刷新此输出流并强制任何缓存的输出字节被写出

  • abstract void write(int b);--->作用:将指定的字节写入此输出流--->一个一个的写

  • void write(byte[] b, int off, int len);--->作用:将指定的字节数组写入off是偏移量,从off开始输入到输出流当中,输入长度是len--->一段一段的写

  • void write(byte[] b);--->作用:将b.length字节从指定的字节数组写入此输出流

Reader读取字符的抽象类--->之能是字符,如果是音频、视频等处理不了

源码当中的特点:

  • 实现了closeable接口和AutoCloseable接口还实现了一个可读接口readale

常用方法:

  • int read();--->读取一个字符(一个字符可能多个字节)

  • int read(char[] cbuf);--->将字符读入数组

Writer--->写入字符流的抽象类

源码当中的特点:

  • 实现了接口closeable, Flushable, Appendable(写), AutoCloseable

特点:

  • 全覆盖,从头开始写文件

  • 从尾部追加,从尾开始写。--->是否可以启追加模式,有标识

常用方法:

  • void write(int c);--->写一个字符

  • void write(String str);--->写一个字符串

  • void write(String str, int off, int len);--->写一个字符串的一部分

  •  

It's a lonely road!!!
原文地址:https://www.cnblogs.com/JunkingBoy/p/14752498.html