当前位置:网站首页>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
边栏推荐
- View UI plus released version 1.2.0 and added image, skeleton and typography components
- 165. Compare version number - string
- Dark chain lock (lca+ difference on tree)
- 国企秋招经验总结
- 西安电子科技大学22学年上学期《信号与系统》试题及答案
- 121道分布式面试题和答案
- Record: the solution of MySQL denial of access when CMD starts for the first time
- View UI Plus 发布 1.2.0 版本,新增 Image、Skeleton、Typography组件
- Data manipulation language (DML)
- 4.30动态内存分配笔记
猜你喜欢
Novatel board oem617d configuration step record
2-year experience summary, tell you how to do a good job in project management
Iterable、Collection、List 的常见方法签名以及含义
121 distributed interview questions and answers
Fgui project packaging and Publishing & importing unity & the way to display the UI
TYUT太原理工大学2022数据库大题之数据库操作
RTKLIB: demo5 b34f. 1 vs b33
Relational algebra of tyut Taiyuan University of technology 2022 database
TYUT太原理工大学2022数据库大题之E-R图转关系模式
One article to get UDP and TCP high-frequency interview questions!
随机推荐
XV Function definition and call
TYUT太原理工大学2022数据库大题之分解关系模式
Introduction and use of redis
Error: sorting and subscript out of bounds
[GNSS data processing] Helmert variance component estimation analysis and code implementation
(超详细二)onenet数据可视化详解,如何用截取数据流绘图
Small exercise of library management system
Quickly generate illustrations
如何保障 MySQL 和 Redis 的数据一致性?
View UI Plus 发布 1.3.1 版本,增强 TypeScript 使用体验
抽象类和接口
What are the advantages of using SQL in Excel VBA
Record: newinstance() obsolete replacement method
十分钟彻底掌握缓存击穿、缓存穿透、缓存雪崩
MySQL Database Constraints
TYUT太原理工大学2022数据库大题之概念模型设计
Atomic and nonatomic
String类
记录:动态Web项目servlet访问数据库404错误之解决
View UI Plus 發布 1.3.1 版本,增强 TypeScript 使用體驗