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 }