import java.io.FileInputStream;
import java.io.FileOutputStream;
//FileInputStream
public class Main{
public static void main(String[] args) throws Exception {
FileOutputStream fo = new FileOutputStream("src\\zdd\\ywj02\\day06\\aaj.txt");
byte[] arr = {97, 98, 99};
fo.write(arr);
// 文件输入流
// 文件路径必须有 而且必须正确 否则会报错 :文件找不到异常
FileInputStream fi = new FileInputStream("src\\zdd\\ywj02\\day06\\aaj.txt");//输入用户 提供的文件
// int i = fi.read();// 一次从文件中读取一个字节到内存中 (方法返回值产生的变量内存里面i)
// System.out.println(i); // 输出为97-a
// //System.out.println((char)i); // 强转 为char 输出 a
// int i2 = fi.read();
// System.out.println(i2);// 98 - b
// int i3 = fi.read();
// System.out.println(i3);// 99 - c
// int i4 = fi.read();
// System.out.println(i4);// 如读到后面没有值 将返回 -1
// 只有read方法 返回值不为-1 就可以一直返回 (while)循环
// while(fi.read()!=-1){// 第一次判断 读取的是 97 没有输出不打印
// 第二次读取的是 98 打印~
// 第三次判断读取的是 99 没有是输出不打印
// 第四次读取 超过范围了 返回值为 -1 有输出打印 -1
// 第四次判断 为-1 不满足 退出循环
System.out.println(fi.read());// 打印 98 -1 ?
}
// 改进后: 可以吧每次读到的内容装箱 在打印箱子里面的内容 就不会遗漏了
// int i; // 用于每次存储被读取的值
// while ((i=fi.read())!=-1) {
// System.out.println(i);// 97 98 99 (abc)
// }
// byte[] arr2 = new byte[1];//
// int i = fi.read(arr2);// 一次读取一个字节个数 字节到自己的数组arr2,方法的返回值表示有效的字节个数
// System.out.println(arr[0]);//97 - a
// System.out.println(i);//97 是一个字节,我需要读取到的字节,对于我来说这是有效的,而有效字节的个数就 1
// // 那么这样写还是太麻烦了 不如在改进
int i;//ch 用于计数 有多少 有效数
byte[] arr3 = new byte[3];// 三个值 97 98 99
while ((i = fi.read(arr))!=-1){//数据在arr中 i去除数组中多有的数据
// System.out.println(new String(arr));//i 读取到多少个有效数字 我就转多少个
System.out.println(new String(arr,0,i));// a b c
}
fo.close();
fi.read();
}
}
FileInputStream方法(字节输入流)的读一个字节和读一个字节数组
最新推荐文章于 2022-11-14 09:46:05 发布
此博客展示了如何使用Java的FileOutputStream和FileInputStream进行文件读写操作。内容包括创建文件输出流写入字节,然后通过文件输入流读取并打印这些字节。示例代码详细解释了读取文件的不同方法,包括逐个字节读取和一次性读取多个字节到数组。
摘要由CSDN通过智能技术生成