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() 写入一个行分隔符。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 概述: 1、IO流:即Input Output的缩写。 2、特点:1)IO流用来处理设备间的数据传输。2)Java...
    玉圣阅读 4,987评论 0 3
  • 概述 计算机并不区分二进制文件与文本文件。所有的文件都是以二进制形式来存储的,因此,从本质上说,所有的文件都是二进...
    奋斗的老王阅读 5,132评论 0 51
  • 图片来源于互联网 一、IO流概述 IO流用于处理设备之间的数据传输问题。Java对数据的操作,通过流的形式。操作存...
    比轩阅读 4,005评论 0 3
  • 一,IO流的分类 A,按照操作的对象不同可分为字节流与字符流 B,按照流的方向不同可分为输入(指从外部存储设备拿文...
    哦00阅读 1,391评论 0 0
  • 马作的卢飞快,弓如霹雳弦惊 病床上跳起舞剑,踏着鼓声 十步杀一人,千里不留行 太极形意八卦,飞檐走壁如风 男儿何不...
    青灯先生阅读 2,600评论 4 5