FileInputStream方法(字节输入流)的读一个字节和读一个字节数组

此博客展示了如何使用Java的FileOutputStream和FileInputStream进行文件读写操作。内容包括创建文件输出流写入字节,然后通过文件输入流读取并打印这些字节。示例代码详细解释了读取文件的不同方法,包括逐个字节读取和一次性读取多个字节到数组。
摘要由CSDN通过智能技术生成
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();
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值