当前位置:网站首页>Comparison between FileInputStream and bufferedinputstream
Comparison between FileInputStream and bufferedinputstream
2022-07-06 13:20:00 【[email protected]】
InputStream yes Java Standard library provides the most basic input stream , be located java.io In the bag ,InputStream Is an abstract class , Is a superclass of all input streams
FileInputStream yes InputStream Subclasses of , Reading data from a file stream .FileInputStream It's reading a file to do InputStream.
BufferedInputStream Is a cached input stream . Inherited from FilterInputStream. The function is to add some functions to another input stream .BufferedInputStream It's in some other InputStream Outside , It's a caching function , To improve the one inside InputStream Performance of ( If possible ), The function is to add some functions to another input stream . It can't separate itself from the one in it , So you can put BufferedInputStream Set on FileInputStream Outside , To improve FileInputStream Performance of .
The difference is :
FileInputStream It's a byte stream ,BufferedInputStream Is a byte buffer stream , Use BufferedInputStream Reading resource ratio FileInputStream The efficiency of reading resources is high ,FileInputStream Of read() Methods will block ;
That is to say , When the buffer size ratio 8192 When I was a child ,BufferedInputStream It's more efficient .
BufferedInputStream One defaults to 8192 Byte buffer , When the customized buffer is smaller than 8192 When , By default, it is read from the hard disk at one time 8192 Bytes into memory , Then only return data according to the customized buffer amount each time , The performance is good because it reduces the number of times to read the hard disk .
The following code will better help you understand .
Code implementation :
FileInputStream read() Method realization :
public class Demo05 {
public static void main(String[] args) throws IOException {
//InputStream Byte input stream parent
// characteristic : Read the input stream of byte content
FileInputStream fis = new FileInputStream("E:\\KuGou\\test02.txt");
// Read byte by byte : Every time you call read() Method , Will read the disk once , Return to one int Byte value of type
int data = -1;
while((data=fis.read())!=-1) {
System.out.println(data);
}
System.out.println("-----------");
// Mode two
// Bulk read ( Self built buffer ): Every time you call read( Buffer byte array ) Method , Will read the disk once , Return to this
// And will read the content , Fill in the self built buffer
// Read to the end of the file , return -1
byte[] buff = new byte[4096];// The byte array represents a buffer
int len = -1;
while((len=fis.read(buff))!= -1) {
System.out.println(Arrays.toString(buff));
}
}
}
BufferedInputStream read() Method code implementation
public class Demo05 {
public static void main(String[] args) throws IOException {
//InputStream Byte input stream parent
//BufferedInputStream when FilterInputStream packing ( decorate ) Subclasses of the device
// characteristic : Built in cache ( Default 8192 Bytes ), Must cooperate FileInputStream Class to work
BufferedInputStream bos = new BufferedInputStream(new FileInputStream("E:\\ Wallpaper sum \\ wallpaper \\ Yang Yang \\young.jpg"));
// Read
// Mode one : Read byte by byte , Every call read() Method , All will be here BufferedInputStream Read a byte from the cache of
// After reading the contents of the buffer , Will be one-time fill full
//bos.read();
// Mode two :( recommend )
// Bulk read ( Self built cache ):
byte[] buffData =new byte[128];
int size = -1;
while((size = bos.read(buffData))!=-1) {
System.out.println(Arrays.toString(buffData));
}
}
}
版权声明
本文为[[email protected] Yummy]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/187/202207060916019897.html
边栏推荐
- Counter attack of flour dregs: redis series 52 questions, 30000 words + 80 pictures in detail.
- 西安电子科技大学22学年上学期《信号与系统》试题及答案
- arduino+水位传感器+led显示+蜂鸣器报警
- 记录:下一不小心写了个递归
- Application architecture of large live broadcast platform
- 系统设计学习(三)Design Amazon‘s sales rank by category feature
- TYUT太原理工大学2022数据库大题之分解关系模式
- 系统设计学习(一)Design Pastebin.com (or Bit.ly)
- Fgui project packaging and Publishing & importing unity & the way to display the UI
- MySQL 30000 word essence summary + 100 interview questions, hanging the interviewer is more than enough (Collection Series
猜你喜欢
XV Function definition and call
Alibaba cloud microservices (II) distributed service configuration center and Nacos usage scenarios and implementation introduction
[dry goods] cycle slip detection of suggestions to improve the fixed rate of RTK ambiguity
图书管理系统小练习
Conceptual model design of the 2022 database of tyut Taiyuan University of Technology
C code implementation of robust estimation in rtklib's pntpos function (standard single point positioning spp)
How to ensure data consistency between MySQL and redis?
系统设计学习(一)Design Pastebin.com (or Bit.ly)
MYSQL索引钟B-TREE ,B+TREE ,HASH索引之间的区别和应用场景
一文搞定 UDP 和 TCP 高频面试题!
随机推荐
Dark chain lock (lca+ difference on tree)
(超详细onenet TCP协议接入)arduino+esp8266-01s接入物联网平台,上传实时采集数据/TCP透传(以及lua脚本如何获取和编写)
TYUT太原理工大学2022软工导论大题汇总
Design a key value cache to save the results of the most recent Web server queries
Alibaba cloud microservices (III) sentinel open source flow control fuse degradation component
Share a website to improve your Aesthetics
十分钟彻底掌握缓存击穿、缓存穿透、缓存雪崩
Small exercise of library management system
Cloud native trend in 2022
Alibaba cloud microservices (II) distributed service configuration center and Nacos usage scenarios and implementation introduction
(超详细二)onenet数据可视化详解,如何用截取数据流绘图
FileInputStream和BufferedInputStream的比较
Database operation of tyut Taiyuan University of technology 2022 database
Application architecture of large live broadcast platform
六种集合的遍历方式总结(List Set Map Queue Deque Stack)
TYUT太原理工大学2022数据库大题之E-R图转关系模式
Abstract classes and interfaces
TYUT太原理工大学2022数据库题库选择题总结
[rtklib 2.4.3 B34] version update introduction I
Quickly generate illustrations