JAVA中的IO流非常多,但我们常用的有几种:
IO流分类
按照“流”的数据流向,可以将其化分为:输入流和输出流。
按照“流”中处理数据的单位,可以将其区分为:字节流和字符流。在java中,字节是占1个Byte,即8位;而字符是占2个Byte,即16位。而且,需要注意的是,java的字节是有符号类型,而字符是无符号类型!
字节流的抽象基类:
InputStream,OutputStream
字符流的抽象基类:
Reader,Writer
由这四个类派生出来的子类名称都是以其父类名作为子类名的后缀,如InputStream的子类FileInputStream,Reader的子类FileReader。
字节缓冲输入流和字节缓冲输出流作用:较少IO次数,提高IO的效率。
字节输入流(InputStream):
常用子类:
FileInputStream
BufferedInputStream:
字节输出流(OutputStream):
常用子类:
FileOutputStream
BufferedOutputStream:
字符输入流(Reader):
常用子类:
FileReader
BufferedReader
字符输出流(Writer):
常用子类:
FileWriter
BufferedWriter
OutputStreamWriter:
构造方法:
//使用默认的字符编码写出数据
public OutputStreamWriter(OutputStream os);
//使用自己指定的字符编码写出数据
public OutputStreamWriter(OutputStream os,String charsetName);
PrintStream:打印流