几种常用的IO流

    之前我们学习了File类,对文件进行了操作,那么如果想对文件中的内容进行操作该怎么办呢?这就离不开流的概念了。流是一种抽象概念,它代表了数据的无结构化传递。按照流的方式进行输入输出,数据被当成无结构的字节序或字符序列。从流中取得数据的操作称为提取操作,而向流中添加数据的操作称为插入操作。用来进行输入输出操作的流就称为IO流。换句话说,IO流就是以流的方式进行输入输出,下面是了解的一些关于IO流。

【总括】


【字节流】

    字节输入流InputStream对文件中的内容进行读取,通过输出流OutputStream将字节写入文件,之所以称作字节流,见名知意,那就是通过字节的形式一个字节一个字节或者字节数组来操作文件中内容,可以操作一切文件。

【字符流】

    字符输入流Reader是一切字符输入流的超类,它是用通过单个字符或者是字符数组的形式来操作文件的,存在一定的局限性,是专门用于对文本文件操作的,默认的版本为GBK。

【转换流】

    为什么提出转换流呢?换换流是字节和字符沟通的桥梁,可以说是给字节流穿上一件外衣,来制定编码表的格式,实际进行操作的还是字节流。例如:字符输出转换流,是字符向字节转换的桥梁,具体过程是这样的:OutputStreamWriter(FileOutputStream,"UTF-8"),拿着字符去指定的编码表UTF-8表中查询,将字符值转换成字节存储到OutputStreamWriter缓冲区中,然后字节流FileOutputStream把缓冲区中的字节写到指定的文件中,这是编码的过程。

    这就是转换流,他就是起到转换的作用,输入流也是一样,InputStreamReader(FileInputStream,"UTF-8"),字节转换成字符,去指定的字符编码表查询,读取字节,然后将其解码成字符。

【缓冲流】

    缓冲流是用来提高输入和输出效率的。我们学习了输入和输出的字节流和字符流,但是如果读写的文件比较大,如果一个个字节或者字符来读取写入的时候,耗费的时间比较长,即使用字符或字节数组也是耗时的,这里就需要更加高效的流,来提高速度了,那就是缓冲流。

【打印流】

    打印流PrintStream和PrintWriter负责数据目的,为其他的输入流添加了功能,能方便的打印各种数据形式,而且不会抛出IOException异常。打印在控制台或者文件中都可以。

【对象操作流】

    我们每次存储到文件或者读取文件中的内容都是文本的。但是如果我们想存储对象怎么办呢?例如存储人类person(包含姓名和年龄)

对象的序列化:ObjectOutputStream(OutputStream out)通过write方法,将对象写入到文件中。

对象的反序列化:ObjectInputStream(InputStream in)通过readObject的方法,将文件中的对象读取出来。

【总结】

    用IO流我们可以对文件中的内容进行输入输出了,那大家还不想实际操作一下吗?让我们一起来吧,下一篇博客我们就来动手吧!

  • 6
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值