缓冲区输入流

缓冲区输入流也和文件输入流差不多,直接看代码:

 1 package com.hw.file0221;
 2 
 3 import java.io.BufferedInputStream;
 4 import java.io.FileInputStream;
 5 import java.io.FileNotFoundException;
 6 import java.io.IOException;
 7 
 8 public class Demo02TestBufferedInputStream {
 9     public static void main(String[] args) {
10         
11         BufferedInputStream input = null;
12         FileInputStream fileinput;
13         try {
14             fileinput = new FileInputStream("F://骚操作//demotest01.txt");
15             input = new BufferedInputStream(fileinput);
16             
17             int data = input.read();  //按字节
18             System.out.println((char)data);
19             data = input.read();
20             System.out.println((char)data);
21             data = input.read();
22             System.out.println((char)data);
23             
24             byte[] info = new byte[1024];   //按数组
25             int length = input.read(info);
26             String str = new String(info,0,length);
27             System.out.println(str);
28             
29         } catch (IOException e) {
30             // TODO Auto-generated catch block
31             e.printStackTrace();
32         }finally{
33             try {
34                 if(input != null){
35                     input.close();
36                 }
37             } catch (IOException e) {
38                 // TODO Auto-generated catch block
39                 e.printStackTrace();
40             }
41         }
42     }
43 }

读取文件也是可以按字节或者按照字节数组来。

 对于第一种方法,表面上看好像只读取了一个字节,但其实读取了很多个字节,根据缓冲区数组的大小把这些数据全部填充,以后每次再调用read方法的时候,其实是从缓冲区里面拿数据,而不需要跟硬盘发生交互,这样是很节约性能的。

 第一种方法也是同理,只不过是第一种方法是一次从缓冲区里面取一个数据,而第二种是一次从缓冲区中取1024个数据。

posted @ 2021-02-22 10:11  EvanTheBoy  阅读(61)  评论(0)    收藏  举报