图片复制的原理-字节输入输出流

文件复制的原理

文件的复制粘贴的过程其实就是读取和写入的过程。
以下示例是将文件数据读取到字节数组当中,然后将字节数组写入到指定的文件。每读取一次随即做写入的操作。
以下变量的解释:

变量描述
int n用于存放每次读取数据的字节大小,同时将read()方法会返回的返回值(本次读取的字节大小)赋值给变量n
byte[] b =new byte[1024]每次读取读取1024个字节大小存储到字节数组b当中
package demo;

import java.io.*;
public class CopyFile {
    public static void main(String[] args) {
        File file = new File("picture.jpg");
        File cpFile = new File("copyPicture.jpg");
        try {
            FileInputStream fis = new FileInputStream(file);
            FileOutputStream fos = new FileOutputStream(cpFile);
            byte[] b = new byte[1024];
            int n = 0;
            while ((n = fis.read(b))!= -1){
                System.out.println(n);
                fos.write(b,0,n);
            }
            fis.close();
            fos.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }catch (IOException e){
            e.printStackTrace();
        }
    }
}

注意!write()的写法,fos.write(b,0,n);此写法可以保证最后一次写入的时候能够写入实际读取的字节大小,否则复制出来的文件大小和源文件大小不一致。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jaywei.online

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值