利用IO输入、输出流来复制图片,你试过吗?

将桌面的图片利用IO流字节输入输出,将图片复制到根目录下!


举个栗子,我复制的是这个图片:
复制的图片


那么看一下图片大小!(注意:字节数!)
在这里插入图片描述


import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class TestFileIO {
    public static void main(String[] args) throws IOException {
        //将指定图片,上传到项目根目录下
        //文件是在存储设备中的-->读到程序中-->写到存储设备中

        //输出流
        FileInputStream fileInputStream = new FileInputStream("C:\\Users\\89698\\Desktop\\素材\\举个栗子.jpg");
        //输出流
        FileOutputStream fileOutputStream = new FileOutputStream("Files\\Ziph给你举个栗子.jpg");
        //这里注意我的这个图片是:8.60 KB (8,813 字节)

        //第一种、
        //我们可以根据字节数分配字节给byte数组
//        byte[] bytes = new byte[9000];//9000个字节够用了
//        fileOutputStream.write(bytes);
        //这时会出现一个问题,复制过去的图片大小是:8.78 KB (9,000 字节)

        //上述第一种做法因此引出来一个问题,如果你不知道图片的大小怎么复制呢?

        //第二种、
        int len = 0;//代表每次读到的字节
        while ((len = fileInputStream.read()) != -1) {//只要不读到-1(也就是说读到的全是有效字节)
            fileOutputStream.write(len);//读多少,写多少——复制后的图片文件大小为原来的大小:8.60 KB (8,813 字节)
        }

        //释放资源
        fileInputStream.close();
        fileOutputStream.close();
    }
}

发布了111 篇原创文章 · 获赞 170 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/weixin_44170221/article/details/104906588