在java开发过程中什么时候使用ByteArrayInputStream和ByteArrayOuitputStream?
来源:互联网 发布:淘宝怎么看确认收货 编辑:程序博客网 时间:2024/04/30 10:32
这两个流的作用在于:用IO流的方式来完成对字节数组的读写。
什么是内存虚拟文件或者内存映像文件?
他们是将一块内存虚拟成一个硬盘上的文件,原来该写到硬盘文件上的内容会被写到这个内存中,原来改从一个硬盘文件上读取内容可以改为从内存中直接读取。(如果在程序运行过程中药产生过一些临时文件,就可以使用虚拟文件的方式来实现,不需要访问硬盘,而是直接访问内存)
常见的应用:比如,我们的程序需要将一台计算机的屏幕图像通过网络不断地传送到另外的计算机上,为了节省网络带宽,我们需要将一副屏幕图像进行压缩后,在通过网络发送出去。如果没有内存虚拟文件,我们需要将一台计算机的屏幕图像的像素数据写入到硬盘上的临时文件,再以这个文件作为输入流对象去调用那个压缩函数,接着又从压缩函数生成的压缩文件中读取压缩后的数据,在通过网络发送出去,最后删除压缩前后生成的两个临时文件。这个效率非常低。
ByteArrayInputStream和ByteArrayOutputStream两个类可以实现类似内存虚拟文件的功能,我们将图像所有的像素数据保存在一个数组中,然后根据数组创建一个ByteArrayInputStream流对象,同时创建一个用于保存压缩结果的ByteArrayOutputyStream流对象,将这两个对象作为参数传递给压缩函数,最后从ByteArrayOutPutStream流对象中返回包含有压缩结果的数组。
0 0
- 在java开发过程中什么时候使用ByteArrayInputStream和ByteArrayOuitputStream?
- java中ByteArrayInputStream和ByteArrayOutputStream类用法
- JAVA中ByteArrayInputStream和ByteArrayOutputStream详解
- Java--ByteArrayInputStream和ByteArrayOutStream
- JAVA中内部类和匿名内部类的区别,分别在什么时候使用它们?
- Java assert在什么时候使用
- web开发中,什么时候使用id,什么时候使用class
- Java IO ByteArrayInputStream和ByteArrayOutputStream
- Java中什么时候使用extends,什么时候使用implements?
- 在学习PHP的过程中,什么时候才可以学数据结构和算法?
- 掌握 Ajax,第 7 部分: 在请求和响应中使用 XML 了解什么时候适合什么时候不适合使用 XML
- 什么时候在EJB系统中使用XML
- 在C++中,什么时候必须使用引用
- 在 React 中什么时候使用箭头函数
- 什么时候使用存储过程
- 什么时候使用存储过程
- java.io中的read方法详解(尤其在数组流即在ByteArrayInputStream中)
- java中什么时候使用finalize()方法
- tomcat并发线程数设置
- 购物车设计思路
- IOS缓存管理之YYCache使用
- 改变 placeholder 颜色、字体大小
- Permutation
- 在java开发过程中什么时候使用ByteArrayInputStream和ByteArrayOuitputStream?
- java.util.List.subList
- LFU与LRU的不同
- 欢迎使用CSDN-markdown编辑器
- IO文件管理
- Java生成随机数工具类,进制之间的转换工具类,获取指定时间,时间格式转换工具类
- linux安装eclipse出现exit code =13时的解决办法
- Java生成随机数工具类,进制之间的转换工具类,获取指定时间,时间格式转换工具类
- php之错误日志(error log)