Java基础系列文章---IO流简单介绍

Java基础系列文章—IO流简单介绍

Java基础系列文章—IO流简单介绍



前言

因为流的内容很多,笔者将在后续系列文章再细化讲解。篇幅有限,本篇文章只是简单的对IO流做了一个简单介绍,后续文章会有针对性的对不同的流进行介绍


提示:以下是本篇文章正文内容,下面案例可供参考

一、Java中IO流是什么?

I/O输入/输出(Input/Output),用于处理设备之间的数据传输。
流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在设备间传输称之为流。

下图是IO的整体介绍图
请添加图片描述

二、IO流的分类

1.按照读写的单位大小来分

1.1 字节流

Java中的字节流处理的最基本单位为单个字节,每次读入或读出是 8 位数据,它通常用来处理二进制(计算机识别的)数据。可以读任何类型数据,图片、文件、音乐视频等。

1.2 字符流

Java中的字节流处理的最基本单位为单个字符,只能用来处理纯文本(使用特殊编码的二进制文件)文件。
注:一个字符根据编码的不同,对应的字节数量也不同,如 UTF-8 编码是 3 个字节,GBK编码是 2 个字节。

1.3 字节流和字符流的区别

字节流与字符流主要的区别是他们的的处理方式,字符流处理的单元为2个字节的Unicode(一种编码格式)字符,分别操作字符、字符数组或字符串,而字节流处理单元为1个字节,操作字节和字节数组。
字符流是由Java虚拟机将字节转化为2个字节的Unicode字符为单位的字符而成的,所以它对多国语言支持性比较好。如果是音频文件、图片、歌曲,就用字节流好点,如果是纯文本的,用字符流好点. 所有文件的储存是都是字节(byte)的储存,在磁盘上保留的并不是文件的字符而是先把字符编码成字节,再储存这些字节到磁盘。在读取文件(特别是文本文件)时,也是一个字节一个字节地读取以形成字节序列. 
1. 字节流可用于任何类型的对象,包括二进制对象,而字符流只能处理字符或者字符串; 
2. 字节流提供了处理任何类型的IO操作的功能,但它不能直接处理Unicode字符,而字符流就可以。
3. 字节流采用的是ASCII编码,字符流采用Unicode编码,他们之间的转化要进行字符集的转化。

2.按照实际IO操作来分

2.1 输入流

从文件读入到内存,只能进行读操作

2.2 输出流

从内存读出到文件,只能进行写操作

3.按照读写时是否直接与硬盘、内存等节点连接来分

3.1 节点流

直接与数据源相连,读入或读出

3.2 处理流(包装流)

对一个已存在的流的连接进行封装,通过所封装的流的功能调用实现数据读写,如添加一个Buffering缓存区
注:主要作用是在读入或读出时,对数据进行缓存,以减少I/O次数,以便更好更快的读写文件

总结

以上内容就是简单的对流进行一个分类介绍,后续文章会在具体介绍,感谢各位大佬阅读本篇文章。

著作权归NoLongerConfused所有。商业转载请联系NoLongerConfused获得授权,非商业转载请注明出处。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NoLongerConfused

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值