在线客服
扫描二维码
下载博学谷APP扫描二维码
关注博学谷微信公众号
Java字节流输入输出数据的常用方法介绍,字节流由字节组成,在计算机中无论是文本、图片、音频还是视频所有文件都是以二进制(字节)形式存在,根据数据的传输方向可将其分为字节输入流和字节输出流。
字节流由字节组成,Java里字符由两个字节组成,字节流是最基本的,所有的InputStream和OutputStream的子类都是主要用在处理二进制数据,按字节来处理的但实际中很多的数据是文本,字符流是按虚拟机的encode来处理也就是要进行字符集的转化。
在计算机中无论是文本、图片、音频还是视频,所有文件都是以二进制(字节)形式存在的,I/O流中针对字节的输入/输出提供了一系列的流,统称为字节流。字节流是程序中最常用的流,根据数据的传输方向可将其分为字节输入流和字节输出流。在JDK中,提供了两个抽象类InputStream和OutputStream它们是字节流的顶级父类,所有的字节输入流都继承自InputStream,所有的字节输出流都继承自OutputStream。方便理解把InputStream和OutputStream比作两根“水管”,如图所示:
InputStream被看成一个输入管道,OutputStream被看成一个输出管道,数据通过InputStream从源设备输入到程序,通过OutputStream从程序输出到目标设备,从而实现数据的传输。I/O流中的输入/输出都是相对于程序而言。在JDK中,InputStream和 OutputStream提供了一系列与读写数据相关的方法,接下来先来了解一下InputStream的常用方法:
列举了InputStream的四个常用方法。前三个read()方法都是用来读数据的,其中,第一个read()方法是从输入流中逐个读入字节,而第二个和第三个read()方法则将若干字节以字节数组的形式一次性读入,从而提高读数据的效率。在进行I/O流操作时,当前I/O流会占用一定的内存,由于系统资源宝贵,因此,在I/O操作结束后,应该调用close()方法关闭流,从而释放当前I/O流所占的系统资源。
与InputStream对应的是OutputStream。OutputStream是用于写数据的,因此OutputStream提供了一些与写数据有关的方法:
OutputStream类的五个常用方法。前三个是重载的write()方法,都用于向输出流写入字节,其中,第一个方法逐个写入字节,后两个方法是将若干个字节以字节数组的形式一次性写入,从而提高写数据的效率。flush()方法用来将当前输出流缓冲区(通常是字节数组)中的数据强制写入目标设备,此过程称为刷新。close()方法是用来关闭流并释放与当前IO流相关的系统资源。
InputStream和OutputStream这两个类虽然提供了一系列和读写数据有关的方法,但是这两个类是抽象类,不能被实例化,因此,针对不同的功能,InputStream和OutputStream提供了不同的子类,这些子类形成了一个体系结构:
InputStream和OutputStream的子类有很多是大致对应的,如ByteArrayInputStream和ByteArrayOutputStream、FileInputStream和FileOutputStream等。图中所列出的I/O流都是程序中很常见的用法。
流式传输主要将整个音频和视频及三维媒体等多媒体文件经过特定的压缩方式解析成一个个压缩包,由视频服务器向用户计算机顺序或实时传送。在采用流式传输方式的系统中,用户不必像采用下载方式那样等到整个文件全部下载完毕,而只需经过几秒或几十秒的启动延时即可在用户的计算机上利用解压设备对压缩的A/V、3D等多媒体文件解压后进行播放和观看。此时多媒体文件的剩余部分将在后台的服务器内继续下载。
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
什么是 java 序列化?如何实现 java 序列化? Serializable 接口的作用?
将一个 java 对象变成字节流的形式传出去或者从一个字节流中恢复成一个 java 对象,例如,要将 java 对象存储到硬盘或者传送给网络上的其他计算机,这个过程我们可以自己写代码去把一个 java 对象变成某个格式的字节流再传输。
7062
2019-06-03 11:26:48
Java基础学习:面向过程与面向对象
刚开始学编程的时候都会遇到一个思维转变的过程,从原来人类思维模式转变成机器可以接受的思维模式。这个过程是非常难的,这也是为什么互联网人才能够获得高薪的原因。对于Java学习,面向过程可能更接近人的正常思维,而面向对象思维就是一个巨大的挑战了。本文就和大家聊一聊关于面向过程和面向对象的优劣。
6469
2019-06-24 18:35:01
Java工程师面试知识点梳理汇总
如今,大多数高端企业级应用都在使用Java,除了大型企业级应用,还有许多游戏开发、大数据的架构都是通过Java来完成的。因此,Java的就业面可以说是十分广泛了。本文专门为大家梳理汇总了Java工程师面试的必备知识点,内容包括数据库、技术框架、项目管理、项目部署以及开发模式,下面一起看看吧!
4800
2020-04-09 21:35:52
Java基础语法学习之常量与变量
今天Java基础语法学习的内容是常量与变量,顾名思义,常量就是不会发生改变的,而变量则恰好相反。本文主要总结了常量的概念、分类、案例演示,还有变量的概念、格式以及使用。下面就一起梳理下相关得基础知识点吧~
4267
2020-05-14 15:31:15
Java程序员必读的基础知识书单推荐
Java程序员必读的基础知识书单推荐,学习过程中书本是比较好的学习工具,与音频和视频相比纸质书籍有一个巨大的优势,不理解时你可以任意反复阅读某一段,或快速复习刚刚阅读过的内容,甚至是只看某一页面的某个段落,方便做笔记。
2396
2022-04-13 14:17:29
热门文章
- 前端是什么
- 前端开发的工作职责
- 前端开发需要会什么?先掌握这三大核心关键技术
- 前端开发的工作方向有哪些?
- 简历加分-4步写出HR想要的简历
- 程序员如何突击面试?两大招带你拿下面试官
- 程序员面试技巧
- 架构师的厉害之处竟然是这……
- 架构师书籍推荐
- 懂了这些,才能成为架构师 查看更多
扫描二维码,了解更多信息