当前位置:网站首页>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
边栏推荐
- 13 power map
- Rt-ppp test using rtknavi
- System design learning (I) design pastebin com (or Bit.ly)
- TYUT太原理工大学2022软工导论大题汇总
- Sharing ideas of on-chip transplantation based on rtklib source code
- Database operation of tyut Taiyuan University of technology 2022 database
- (超详细二)onenet数据可视化详解,如何用截取数据流绘图
- Application architecture of large live broadcast platform
- View UI Plus 发布 1.1.0 版本,支持 SSR、支持 Nuxt、增加 TS 声明文件
- 记录:Navicat Premium初次无法连接数据库MySQL之解决
猜你喜欢

10 minutes pour maîtriser complètement la rupture du cache, la pénétration du cache, l'avalanche du cache

图书管理系统小练习

Fairygui bar subfamily (scroll bar, slider, progress bar)

阿里云一面:并发场景下的底层细节 - 伪共享问题

Arduino+ water level sensor +led display + buzzer alarm

String类

几道高频的JVM面试题

System design learning (III) design Amazon's sales rank by category feature

E-R graph to relational model of the 2022 database of tyut Taiyuan University of Technology

Summary of multiple choice questions in the 2022 database of tyut Taiyuan University of Technology
随机推荐
How to ensure data consistency between MySQL and redis?
The overseas sales of Xiaomi mobile phones are nearly 140million, which may explain why Xiaomi ov doesn't need Hongmeng
记录:Navicat Premium初次无法连接数据库MySQL之解决
167. Sum of two numbers II - input ordered array - Double pointers
2年经验总结,告诉你如何做好项目管理
十分鐘徹底掌握緩存擊穿、緩存穿透、緩存雪崩
Abstract classes and interfaces
Cloud native trend in 2022
Summary of multiple choice questions in the 2022 database of tyut Taiyuan University of Technology
阿里云一面:并发场景下的底层细节 - 伪共享问题
MYSQL索引钟B-TREE ,B+TREE ,HASH索引之间的区别和应用场景
Application architecture of large live broadcast platform
Dark chain lock (lca+ difference on tree)
121 distributed interview questions and answers
Employment of cashier [differential constraint]
TYUT太原理工大学2022数据库之关系代数小题
MySQL limit x, -1 doesn't work, -1 does not work, and an error is reported
Small exercise of library management system
MySQL 30000 word essence summary + 100 interview questions, hanging the interviewer is more than enough (Collection Series
Common method signatures and meanings of Iterable, collection and list