在线客服
扫描二维码
下载博学谷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等多媒体文件解压后进行播放和观看。此时多媒体文件的剩余部分将在后台的服务器内继续下载。
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
参加JavaEE开发培训班能找到工作吗?
虽然目前JavaEE相应的就业岗位非常多,但是由于互联网技术的高速发展,企业之间的竞争日益明显,因此企业对从业者的要求也越来越高。所以刚刚毕业或者只是通过简单自学JavaEE知识的同学,找工作的时候屡屡碰壁。越来越多的同学认识到通过参加JavaEE开发培训班系统学习知识的重要性。那参加JavaEE开发培训班能找到工作吗?
5063
2019-08-20 17:56:15
学习Java语言有哪些优势?
对于IT行业的学习和从业者来说,Java语言的学习是绕不开的话题。Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。Java语言的学习需要花费很大的心力和时间,想要更加高效地掌握Java,建议找一个靠谱的培训机构系统学习。
4576
2020-05-29 11:43:02
Spring Cloud Alibaba微服务架构项目实战学习目标
Spring Cloud Alibaba微服务架构项目实战学习目标,通过电商项目实现理解SpringCloud 生态中主流技术的用法及原理、掌握微服务架构的实际开发方法、能够轻松投入项目开发工作,增强面试能力、握处理问题以及整体规划的思维方式。
7187
2020-06-16 11:16:31
Java学完面向对象可以干什么?
面向对象是软件开发方法一种编程范式。面向对象是Java学习中的一个基础部分,学学面向对象逐步建立起面向对象编程思想,从会使用对象,到内存分析,再到理解为什么封装对象。想成为一名程序员只掌握面向对象的知识是远远不够的。
4853
2020-12-23 10:02:11
想学Java大学应该报哪个专业?
想学Java大学应该报哪个专业?大部分人会选择计算机应用技术或计算机科学与技术专业,里面涉及Java相关的课程,还有一些计算机基础知识,毕业以后从事软件开发的工作是比较对口的。Java是一种软件开发技术,大学一般不会重点教,会开这么一门课程,一周1-2个课时,教学内容相当有限算入门级别,想深入学习建议再报个Java培训班学习。
5866
2021-01-28 14:38:03