演示FileInputStream和FileOutputStream的使用

主要方法

●FileInputStream:
●public int read(byte[] b) // 从流中读取多个字节,将读到内容存入b数组,返回实际读到的字节数;如果达到文件的尾部,则返回-1。


●FileOutputStream:
●public void write(byte[] b) // 一次写多个字节,将b数组中所有字节,写入输出流。


1.创建FileInputStream

		FileInputStream fis=new FileInputStream("D:\\aa.txt");//txt文件路径

在这里插入图片描述


2.读取文件

2.1 单个字节获取

        // fis.read();
        int data=0;
        while ((data=fis.read())!=-1){
            System.out.print((char)data);//获取的data为ASCII码,需要转换一下
        }

运行结果:
在这里插入图片描述

2.2 多个字节获取

        //fis.read(byte[] b);
        byte[] buf=new byte[3];//3为缓冲区大小,一般来说缓冲区都会很大
        int count=0;//字节个数
        while((count=fis.read(buf))!=-1){
            System.out.println(new String(buf,0,count));
            System.out.println(count);
        }

运行结果:
在这里插入图片描述


3.关闭FileInputStream流

        fis.close();//关闭流
        System.out.println();
        System.out.println("执行完毕!");

4.创建FileOutputStream

文件路径后面不添加true就会把原文件数据覆盖。

        //不添加,true就会把原文件数据覆盖
        FileOutputStream fos=new FileOutputStream("d:\\bb.txt",true);

5.添加数据

        //添加数据
        fos.write(97);
        fos.write('b');//自动转成int类型
        fos.write('c');
        //字符串输入添加
        String str="hello,world!";
        fos.write(str.getBytes());

6.关闭FileOutputStream及运行结果

        //关闭
        fos.close();
        System.out.println("执行完毕!");

在这里插入图片描述
在这里插入图片描述

7.复制文件

7.1创建输入流与输出流

        //原文件所在的路径:
        FileInputStream fis=new FileInputStream("d:\\img01.jpg");
        //复制后文件的路径及命名名称
        FileOutputStream fos=new FileOutputStream("d:\\img02.jpg");

7.2一边读取文件,一边输出文件

        //创建缓冲区
        byte[] buf=new byte[1024];//传输时不超过1K
        int count=0;//实际返回的字节个数
        while ((count=fis.read(buf))!=-1){
            fos.write(buf,0,count);//用write的重载方法写入数据
        }

7.3关闭流

        //3.关闭
        fis.close();
        fos.close();
        System.out.println("复制完毕!");

7.4运行结果

在这里插入图片描述


在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值