IO流

流是一连串流动的数据(字节、字符),以先进先出的方式发送的信息的通道中

输入流     数据从源数据源流入程序的过程称为输入流。

输出流     数据从程序流出到目的地的过程称为输出流。


 流的分类


InputStream/OutputStream


InputStream 是所有字节输入流的抽象父类,提供了

read 读取一个字节

read(byte[] buf) 读取一定量的字节到缓冲区数组 buf中。


OutputStream 是所有字节输出流的抽象父类,提供了

write() 写入一个字节

write(byte[] buf) 写入一定量的字节到输出流


FileInputStream 文件字节输入流,专门用于从文件中读取字节到程序内存中。

FileOutputStream 文件字节输出流,专门用于从内存中写入字节到文件中。


Reader/Writer

Reader 是字符输入流的抽象父类,提供了

read 一次读取一个字符

read(char[] cbuf) 一次读取多个字符到字符缓冲区cbuf,返回长度表示读取的字符个数。


Writer 是字符输出流的抽象父类,提供了

write

write(char[] cbuf)

write(string)


FileReader 文件字符输入流,专门用于读取默认字符编码文本性文件。


FileWriter 文件字符输出流,专门用于写入默认字符编码的文本性文件。为了提高效率,FileWriter内部存在一个字节缓冲区,用于对待写入的字符进行统一编码到字节缓冲区,一定要在关闭流之前,调用flush方法刷新缓冲区。


转换流

InputStreamReader 继承于Reader,是字节流通向字符流的桥梁,可以把字节流按照指定编码 解码 成字符流。


OutputStreamWriter继承于Writer,是字符流通向字节流的桥梁,可以把字符流按照指定的编码 编码 成字节流。



转换流工作原理 


BufferedReader/BufferedWriter

BufferedReader 继承于Reader,提供了

read

read(char[] cbuf)

readLine() 用于读取一行文本,实现对文本的高效读取。

BufferedReader 初始化时需要一个reader,本质上BufferedReader在reader的基础上增加readLine()的功能。


BufferedWriter继承于Writer,提供了

write

write(char[] cbuf)

write(string)

newline() 写入一个行分隔符。

你可能感兴趣的:(IO流)