00090_字节输入流InputStream

1、字节输入流InputStream

  (1)通过InputStream可以实现把内存中的数据写出到文件;

  (2)把内存中的数据写出到文件InputStream此抽象类,是表示字节输入流的所有类的超类。,定义了字节输入流的基本共性功能方法;

  (3)int read():读取一个字节并返回,没有字节返回-1;

  (4)int read(byte[]): 读取一定量的字节数,并存储到字节数组中,返回读取到的字节数。

2、FileInputStream类

  (1)InputStream有很多子类,其中子类FileInputStream可用来读取文件内容。;

  (2)FileInputStream 从文件系统中的某个文件中获得输入字节。

3、FileInputStream类读取数据read方法

  (1)在读取文件中的数据时,调用read方法,实现从文件中读取数据;

  (2)从文件中读取数据,代码演示:

 1 import java.io.File;
 2 import java.io.FileInputStream;
 3 import java.io.IOException;
 4 
 5 public class FileInputStreamDemo {
 6     public static void main(String[] args) throws IOException {
 7         File file = new File("d:\\HelloWorld.txt");
 8         // 创建一个字节输入流对象,必须明确数据源,其实就是创建字节读取流和数据源相关联。
 9         FileInputStream fis = new FileInputStream(file);
10         // 读取数据。使用 read();一次读一个字节。
11         int ch = 0;
12         while ((ch = fis.read()) != -1) {
13             System.out.println("ch=" + (char) ch);
14         }
15         // 关闭资源。
16         fis.close();
17     }
18 }

4、读取数据read(byte[])方法

  (1)在读取文件中的数据时,调用read方法,每次只能读取一个,太麻烦了;

  (2)我们可以定义数组作为临时的存储容器,这时可以调用重载的read方法,一次可以读取多个字符。

 1 import java.io.File;
 2 import java.io.FileInputStream;
 3 import java.io.IOException;
 4 
 5 public class FileInputStreamDemo2 {
 6     public static void main(String[] args) throws IOException {
 7         /*
 8          * 演示第二个读取方法, read(byte[]);
 9          */
10         File file = new File("d:\\HelloWorld.txt");
11         // 创建一个字节输入流对象,必须明确数据源,其实就是创建字节读取流和数据源相关联。
12         FileInputStream fis = new FileInputStream(file);
13         // 创建一个字节数组。
14         byte[] buf = new byte[1024];// 长度可以定义成1024的整数倍。
15         int len = 0;
16         while ((len = fis.read(buf)) != -1) {
17             System.out.println(new String(buf, 0, len));
18         }
19         fis.close();
20     }
21 }

 

posted @ 2017-12-24 07:33  gzdlh  阅读(134)  评论(0编辑  收藏  举报