一、介绍
![image-20240502164027484](https://img-blog.csdnimg.cn/img_convert/b950abd3f0adf8840ab2755739ef7fa7.png)
字节输入流(FileInputStream
):操作本地文件的字节输入流,可以把本地文件中的数据读取到程序中来。
书写步骤:
1、创建字节输入流对象
对象一旦创建完,程序跟本地文件之间,就好比是有了一条传输数据的通道
2、读数据
利用通道可以把文件中的数据读取到程序中来
3、释放资源
相当于就是将这个通道给砸了
二、代码示例
假设在模块底下有一个 a.txt
,并且里面存储了 abcde
现在我们是使用字节流去读,那么就是 InputStream
,从文件中读,在它前面拼接一个 File
就行了,因此我们创建的是 FileInputStream类
的对象。
//1.创建对象
FileInputStream fis = new FileInputStream("myio\\a.txt");
读数据是 read()
,read()
是空参,但是有一个返回值,返回值是 int类型
的。
由于下面代码只调用了一次 read()
,因此在文件中它读取的是第一个数据 a
,但是到程序中不是 a
,而是 a
在ASCII码表中所对应的数字 97
,即相当于将 97
赋值给了 b1
。
//2.读取数据
int b1 = fis.read();
System.out.println(b1); // 97
//3.释放资源
fis.close();
如果想要读取多个数据,反复调用即可。
如果我们想看见原来的 abcde
,在打印的时候强转为 char
即可。
//2.读取数据
int b1 = fis.read();
System.out.println((char)b1);
int b2 = fis.read();
System.out.println((char)b2);
int b3 = fis.read();
System.out.println((char)b3);
int b4 = fis.read();
System.out.println((char)b4);
int b5 = fis.read();
System.out.println((char)b5);
// read()会一个一个去读,如果读不到了返回-1
int b6 = fis.read();
System.out.println(b6);//-1
//3.释放资源
fis.close();