黑马程序员技术交流社区
标题:
为什么会图片错误。。
[打印本页]
作者:
王振2014
时间:
2014-6-22 18:44
标题:
为什么会图片错误。。
BufferedInputStream bi = new BufferedInputStream(new FileInputStream("C://111.jpg"));
PrintWriter bo = new PrintWriter(new BufferedOutputStream(new FileOutputStream("D://12223.jpg")));
// BufferedOutputStream bo = new BufferedOutputStream(new FileOutputStream("D://11222.jpg"));
int len;
while((len = bi.read()) != -1)
{
bo.write(len);
bo.flush();
}
bo.close();
bi.close();
复制代码
PrintWriter不是什么流都可以接受吗,图片是传过去了,但是打开后是图片错误
直接使用缓存输出流就可以
这是为什么?
作者:
王振2014
时间:
2014-6-22 18:48
又试了下PrintStream是可以的.....
作者:
爨庚轩
时间:
2014-6-22 19:27
PrintWriter是字符流 操作二进制文件 最好用字节流
作者:
波涛
时间:
2014-6-22 19:44
操作媒体类型文件使用字节流,printWriter是字符打印流,要用也得用字节打印流printStream啊!
作者:
那片天空
时间:
2014-6-22 20:05
API中是这样说的:
向文本输出流打印对象的格式化表示形式。此类实现在 PrintStream 中的所有 print 方法。它不包含用于写入原始字节的方法,对于这些字节,程序应该使用未编码的字节流进行写入。
所以说这些原始字节没有被复制过去,所以图片会显示有损失,这个你可以看一下原图片和复制后的图片大小应该是不一样的
作者:
那片天空
时间:
2014-6-22 20:07
补充下昂,这个API解释是:PrintWriter的解释
作者:
MasMajesty
时间:
2014-6-22 20:58
print方法在哪,自动刷新没设置!
作者:
王振2014
时间:
2014-6-23 09:46
明白了,得多看文档啊
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2