用字节输入输出流复制图片,为什么显示无法打开图片,因为该图片已损坏,复制后的图片比原来图片内存小很多

[复制链接]
查看11 | 回复5 | 2021-1-27 05:04:52 | 显示全部楼层 |阅读模式
复制图片显示成功的,但是打开却说已损坏,查看复制后的图片发现只有4个字节。







分 -->
回复

使用道具 举报

千问 | 2021-1-27 05:04:52 | 显示全部楼层
复制图片实际上是通过文件的输入输出流实现对文件的读与写
写的是字节或者字符。
你看你的代码accept=fip.read()
accept你写成了int型,那么你写的就是每次字节读取的下标,没有写字节,所以你复制的图片是损坏的
fip.read()返回的是每次写入的下标,你要换成byte数组。才能写入字节
以下是我以前写的一段,我用的字符流,你把chars换成字节数组就行了,你可以参考下
InputStreamReaderisr=null;
try{
//copyFile("C:\\Users\\Administrator\\Desktop\\test.txt","C:\\Users\\Administrator\\Desktop\\test_copy.txt",false);
Filefile=newFile("C:\\Users\\Administrator\\Desktop\\test.txt");
isr=newInputStreamReader(newFileInputStream(file),"utf-8");
char[]chars=newchar[1024];
while(isr.read(chars)!=-1){
System.out.println(newString("gbk",chars));
}
}catch(Exceptione){
e.printStackTrace();
}finally{
try{
isr.close();
}catch(IOExceptione){
e.printStackTrace();
}
}
回复

使用道具 举报

千问 | 2021-1-27 05:04:52 | 显示全部楼层
为什么我运行可以呢
回复

使用道具 举报

千问 | 2021-1-27 05:04:52 | 显示全部楼层



回复

使用道具 举报

千问 | 2021-1-27 05:04:52 | 显示全部楼层
我这样复制图片没有问题


回复

使用道具 举报

千问 | 2021-1-27 05:04:52 | 显示全部楼层
我也是一样的问题请问你找到解决方法了吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行