FileInputStream

InputStream 基类,抽象类

    FileInputStream  读取文件的字节流

    BufferedInputStream  缓冲输入字符流

 1 package file;
 2 
 3 import java.io.File;
 4 import java.io.FileInputStream;
 5 import java.io.IOException;
 6 
 7 public class test {
 8     public static void main(String[] args) throws IOException {
 9 //        readTest1();    
10 //        readTest2();    
11 //        readTest3();
12         readTest4();    //效率最高
13     }
14     
15     //方式4:使用缓冲数据配合循环读取
16     public static void readTest4() throws IOException  {
17         long startTime = System.currentTimeMillis();
18         File file = new File("F:\a.txt");
19         FileInputStream fileInputStream = new FileInputStream(file);
20         //建立缓冲字节数组,读取文件的数据。
21         byte[] buf = new byte[1024];
22         int content = 0;
23         while((content = fileInputStream.read(buf) ) != -1){
24             System.out.println("内容是:"+ content);
25         }
26         fileInputStream.close();
27         long endTime = System.currentTimeMillis();
28         System.out.println("读取时间是:"+ (endTime-startTime));
29     }
30     
31     //方式3、使用 缓冲数据 读取    无法读取完整一个文件的数据:
32     public static void readTest3() throws IOException  {
33         File file = new File("F:\a.txt");
34         FileInputStream fileInputStream = new FileInputStream(file);
35         //建立缓冲字节数组,读取文件的数据。
36         byte[] buf = new byte[1024];
37         int length = fileInputStream.read(buf);    //数据已经存储到了字节数组中了,read返回值是本次读取了几个字节数据到字节数组中
38         System.out.println("length:" + length);
39         //使用字节数组构建字符串
40         String content = new String(buf,0,length);    //读取长度个,一定要加length,因为不加length,会覆盖,比如,aaaabbb,读取之后会变成aaaabbba。
41         System.out.println("内容是:"+content);
42         fileInputStream.close();
43     }
44     
45     //方式2、使用循环读取文件的数据
46     public static void readTest2() throws IOException  {
47         File file = new File("F:\a.txt");
48         FileInputStream fileInputStream = new FileInputStream(file);
49         //读取文件的数据
50         int content = 0;
51         while((content = fileInputStream.read())!=-1) {
52             System.out.print((char)content);
53         }
54         fileInputStream.close();
55     }
56     
57     //方式1、
58     public static void readTest1() throws IOException {
59         //1.找到目标文件
60         File file = new File("F:\a.txt");
61         //建立数据的输入通道
62         FileInputStream fileInputStream = new FileInputStream(file);
63         //读取文件中的数据
64         int content = fileInputStream.read();    //每次读取一个字节
65         System.out.println("读取的内容.."+ content);
66         //关闭资源
67         fileInputStream.close();
68     }
69 }
原文地址:https://www.cnblogs.com/linst/p/5659747.html