黑马程序员技术交流社区
标题:
用IO流拷贝图片
[打印本页]
作者:
hellotaomi
时间:
2015-5-5 17:35
标题:
用IO流拷贝图片
最近在学习IO流,根据学习的内容写了一个字节流复制图片的程序,代码如下:
import java.io.*;
class CopyPic
{
public static void main(String[] agrs) throws IOException
{
//获取键盘输入对象
BufferedReader bufr = new BufferedReader(new InputStreamReader(new FileInputStream("d:\\1.jpg")));
BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("d:\\2.jpg")));
String line = null;
while((line=bufr.readLine())!=null)
{
//if("over".equals(line))
// break;
bufw.write(line);
//bufw.newLine();//换行
bufw.flush();
}
}
}
复制代码
但是在最后执行后,copy的图片打开却是空白的。
QQ图片20150505172607.png
(5.04 KB, 下载次数: 18)
下载附件
2015-5-5 17:34 上传
请教各位高手,这是为什么呢?
作者:
ZSMAN
时间:
2015-5-5 17:46
图片应该用字节流读取啊~用字节流打开文件,用一个byte数组保存信息、输出信息~
作者:
ZSMAN
时间:
2015-5-5 17:57
给你改了代码:
import java.io.*;
class TEST
{
public static void main(String[] agrs) throws IOException
{
//获取键盘输入对象
FileInputStream fin =new FileInputStream("C:\\bar.emf");
FileOutputStream fout = new FileOutputStream("C:\\1.jpg");
byte[] tmp=new byte[1024];
int len=0;
while((len=fin.read(tmp))!=-1)
{
//if("over".equals(line))
// break;
fout.write(tmp,0,len);
//bufw.newLine();//换行
fout.flush();
}
fout.close();
}
}
复制代码
作者:
csu050416
时间:
2015-5-5 17:59
import java.io.*;
class Test
{
public static void main(String[] agrs) throws Exception
{
//获取键盘输入对象
FileInputStream fis = new FileInputStream("d:\\1.jpg");
FileOutputStream fos =null;
byte[] by = new byte[1024*1024];
int line = 0;
while((line=fis.read(by))!=-1)
{
fos = new FileOutputStream("d:\\2.jpg");
fos.write(by,0,line);
fos.close();
}
fis.close();
}
}
这个可以。
作者:
csu050416
时间:
2015-5-5 18:00
获取键盘录入不要,文件不是从键盘录入的。复制完了,自己关流,不需要给出关闭判断。
作者:
bztf
时间:
2015-5-5 18:02
注意下刷新的方式
作者:
大西洋
时间:
2015-5-5 18:53
这个还需要一个FileInputStream 和 FileOutputStream~
作者:
熬夜看书
时间:
2015-5-5 19:28
刚学到用io复制文本,先看看咋复制图片的
作者:
zuoyou
时间:
2015-5-5 19:30
你不能用字符流来操作字节流对象啊!这样结果肯定有问题啊!你字用BufferedInputStream()和BufferedOutputStream()应该就没有问题了吧!
作者:
晓声
时间:
2015-5-5 21:25
谁定。。不懂学习学习
作者:
IDhmpj
时间:
2015-5-5 21:29
操作二进制文件需要使用字节流,否则会造成文件的损坏。其实你用Reader读取之后,可以使用转换流(OutputStreamWriter)将读取的字符数组写出去,会得到一个文件,但是。。。。文件已经面目全非了。
作者:
黄文昭
时间:
2015-5-5 22:18
复制图片、音频等不是应该用字节流的么?基本的、高效的都行啊。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2