当前位置:网站首页>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
边栏推荐
- 十分鐘徹底掌握緩存擊穿、緩存穿透、緩存雪崩
- Branch and loop statements
- View UI plus released version 1.3.1 to enhance the experience of typescript
- 阿里云微服务(一)服务注册中心Nacos以及REST Template和Feign Client
- Exception: ioexception:stream closed
- Small exercise of library management system
- Design a key value cache to save the results of the most recent Web server queries
- View UI Plus 發布 1.3.1 版本,增强 TypeScript 使用體驗
- Rt-ppp test using rtknavi
- Abstract classes and interfaces
猜你喜欢
[GNSS data processing] Helmert variance component estimation analysis and code implementation
Role movement in the first person perspective
西安电子科技大学22学年上学期《基础实验》试题及答案
E-R graph to relational model of the 2022 database of tyut Taiyuan University of Technology
How do architects draw system architecture blueprints?
Differences and application scenarios between MySQL index clock B-tree, b+tree and hash indexes
arduino+水位传感器+led显示+蜂鸣器报警
Application architecture of large live broadcast platform
System design learning (III) design Amazon's sales rank by category feature
View UI plus released version 1.2.0 and added image, skeleton and typography components
随机推荐
arduino+DS18B20温度传感器(蜂鸣器报警)+LCD1602显示(IIC驱动)
Dark chain lock (lca+ difference on tree)
Redis介绍与使用
阿里云微服务(四) Service Mesh综述以及实例Istio
Alibaba cloud microservices (III) sentinel open source flow control fuse degradation component
Problems and solutions of robust estimation in rtklib single point location spp
Application architecture of large live broadcast platform
系统设计学习(三)Design Amazon‘s sales rank by category feature
Inheritance and polymorphism (I)
初识C语言(上)
RTKLIB: demo5 b34f. 1 vs b33
Network layer 7 protocol
View UI Plus 发布 1.3.1 版本,增强 TypeScript 使用体验
MySQL 30000 word essence summary + 100 interview questions, hanging the interviewer is more than enough (Collection Series
Alibaba cloud microservices (I) service registry Nacos, rest template and feign client
Heap sort [handwritten small root heap]
图书管理系统小练习
12 excel charts and arrays
2-year experience summary, tell you how to do a good job in project management
Inheritance and polymorphism (Part 2)