加入收藏 | 设为首页 | 会员中心 | 我要投稿 衡水站长网 (https://www.0318zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长资讯 > 动态 > 正文

如何利用大数据和人工智能对其进行 “捕捉”

发布时间:2021-02-13 11:29:20 所属栏目:动态 来源:互联网
导读:看到这么多的类是不是又开始觉得混乱了,不要慌,字节流和字符流下的输入流和输出流大部分都是一一对应的,有了上面的表格支撑,我们不需要再担心看见某个类会懵逼的情况了。 看到 Stream 就知道是字节流,看到 Reader / Writer 就知道是字符流。 这里还要额

看到这么多的类是不是又开始觉得混乱了,不要慌,字节流和字符流下的输入流和输出流大部分都是一一对应的,有了上面的表格支撑,我们不需要再担心看见某个类会懵逼的情况了。

看到 Stream 就知道是字节流,看到 Reader / Writer 就知道是字符流。

这里还要额外补充一点:Java IO 提供了字节流转换为字符流的转换类,称为转换流。

转换流 / 数据类型字节流与字符流之间的转换(输入)字节流 => 字符流InputStreamReader(输出)字符流 => 字节流OutputStreamWriter

注意字节流与字符流之间的转换是有严格定义的:

  • 输入流:可以将字节流 => 字符流
  • 输出流:可以将字符流 => 字节流

为什么在输入流不能字符流 => 字节流,输出流不能字节流 => 字符流?

在存储设备上,所有数据都是以字节为单位存储的,所以输入到内存时必定是以字节为单位输入,输出到存储设备时必须是以字节为单位输出,字节流才是计算机最根本的存储方式,而字符流是在字节流的基础上对数据进行转换,输出字符,但每个字符依旧是以字节为单位存储的。

节点流和处理流

在这里需要额外插入一个小节讲解节点流和处理流。

  • 节点流:节点流是真正传输数据的流对象,用于向特定的一个地方(节点)读写数据,称为节点流。例如 FileInputStream
  • 处理流:处理流是对节点流的封装,使用外层的处理流读写数据,本质上是利用节点流的功能,外层的处理流可以提供额外的功能。处理流的基类都是以 Filter 开头

图示中的硬盘只是其中一种设备,还有非常多的设备都可以应用在IO流中,例如:打印机、硬盘、显示器、手机······

  • 根据处理数据的基本单位不同分类:字节流 和 字符流
  • 字节流:以字节(8 bit)为单位做数据的传输
  • 字符流:以字符为单位(1字符 = 2字节)做数据的传输

字符流的本质也是通过字节流读取,Java 中的字符采用 Unicode 标准,在读取和输出的过程中,通过以字符为单位,查找对应的码表将字节转换为对应的字符。

面对字节流和字符流,很多读者都有疑惑:什么时候需要用字节流,什么时候又要用字符流?

我这里做一个简单的概括,你可以按照这个标准去使用:

  • 字符流只针对字符数据进行传输,所以如果是文本数据,优先采用字符流传输;除此之外,其它类型的数据(图片、音频等),最好还是以字节流传输。
  • 根据这两种不同的分类,我们就可以做出下面这个表格,里面包含了 IO 中最核心的 4 个顶层抽象类:
  • 数据流向 / 数据类型字节流字符流输入流InputStreamReader输出流OutputStreamWriter

现在看 IO 是不是有一些思路了,不会觉得很混乱了,我们来看这四个类下的所有成员。



(编辑:衡水站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读