首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

了解Java的 I/O 流

I/O流的作用

I 就是输入流(读数据),O就是输出流(写数据)。当我们需要从硬盘,内存或者网络中读写数据时,数据的传输量可能很大,而我们的内存和带宽有限,无法一次性获取大数据量时,就可以通过IO流来解决问题。而流,就像河流中的水一样,缓缓的流入大海。(PS:IO流让我们在各种环境下更好的读写数据。)

I/O流的分类

从传输数据类型分为:字节流和字符流

从传输方向分为:输入流和输出流

从IO操作对象划分:

如何更好的使用IO流

我们在使用IO流的时候,我们要明确,是读数据还是写数据,传输的数据时字节还是字符,数据所在的设备等问题,决定我们应该用什么IO流,具体情况具体分析,举个例子我们来了解一下。

序列化,就是将Java对象以字节流的方式存入硬盘中,分析一下,操作的是对象,字节流,写数据,我们就可判断用的是ObjectOutputStream,则反序列化用的ObjectInputStream读数据。

当我们需要把数据暂存内存时,可以用ByteArrayOutputStream,因为ByteArrayOutputStream创建实例对象的时候,程序内部创建一个byte型别数组的缓冲区,然后利用ByteArrayOutputStream和ByteArrayInputStream的实例向数组中写入或读出byte型数据,在网络传输中我们往往要传输很多变量,我们可以利用ByteArrayOutputStream把所有的变量收集到一起,然后一次性把数据发送出去。

当我们要得到某个文件的内容的时候,我们就可以用FileInputStream来得到文件中的内容

从以上三个例子,其实想说不同场景下,需要用到不同的IO流,我们现在只是简单的了解了一下Java的IO流,对于后端的开发同学来说,熟练的掌握IO流是极其重要的,我们可以通过网络,文件,内存对数据进行读写操作,后面我们继续深入的分析IO流的源码,到时候发出来供大家参考。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20201209A0HV9K00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券