weixin_42679575
猿来入此→
采纳率0%
2019-09-06 23:17 阅读 2.3k
已结题

Java的IO流拷贝图片成功,但是加载不出来,显示不支持此文件格式是什么原因,跪求大佬指点!

Java的IO流拷贝图片成功,但是加载不出来,显示不支持此文件格式是什么原因,跪求大佬指点!
源文件
图片说明
目标文件
加载不出来
看图
提示不支持此文件格式
dai'ma'ru'xia

public class Copy {
    public static void main(String[] args) {
        copy("baigongji.jpg","bgj.jpg");
    }

    public static void copy(String srcPath, String destPath) {
        File src = new File(srcPath);![图片说明](https://img-ask.csdn.net/upload/201909/06/1567782749_401634.png)

        File dest = new File(destPath);
        InputStream is = null;
        OutputStream os = null;

        try {
            is = new FileInputStream(src);
            os = new FileOutputStream(dest,true);
            byte[] flush = new byte[1024*1000];
            int len = -1;
            while((len=is.read(flush))!=-1) {
                os.write(flush,0,flush.length);

                os.flush();

            }
        } catch (FileNotFoundException e) {
            // TODO 自动生成的 catch 块
            e.printStackTrace();
        } catch (IOException e) {
            // TODO 自动生成的 catch 块
            e.printStackTrace();
        }finally {
            try {
                if(null!=os)
                    os.close();
            } catch (IOException e) {
                // TODO 自动生成的 catch 块
                e.printStackTrace();
            }
            try {
                if(null!=is)
                    is.close();![图片说明](https://img-ask.csdn.net/upload/201909/06/1567782804_49643.png)

            } catch (IOException e) {
                // TODO 自动生成的 catch 块
                e.printStackTrace();
            }
        }
    }

}
  • 点赞
  • 收藏
  • 复制链接分享

1条回答 默认 最新

  • Tiarnach Tiarnach 2019-09-07 10:29
    int len = -1;
     while((len=is.read(flush))!=-1) {
            os.write(flush,0,flush.length);//flush.length应该改为len
                    os.flush();
    
     }
    

    看下你的输出图片和原图片的字节大小是否一致

    如果文件长度为1024*1000+1,那么按你现在的实现输出会是1024*1000*2

    点赞 评论 复制链接分享

相关推荐