我十分不明白你为什么要用转化流去复制一个图片。 你没有理解转换流的用法,所以你才会导致在复制一个二进制文件的时候去使用转化流。
你上边相当于完成了这么一个事情。
字节--》字符--》---》字节,,哥们不累啊。
什么时候用到转换流呢,比如说system.in
因为在你键盘录入的时候,你写入的肯定是字符吧,不可能从键盘上录入二进制数去。。
这是,为了你操作方便,才使用转换流,也就是在确保你录入的信息是字符信息,而你对应的流是一个字节流。
这时候,才需要转换,是为了操作方便,比如说使用br.readLine()去一下子将键盘录入的信息从它的字节流中得到一个对应的字符串 ,这中间一定有编码和解码。
至于copy图片文件,使用BufferedOutputStream和BufferedInputstream完全就可以了
例子:
BufferedInputStream br=new BufferedInputStream(new FileInputStream("0.png"));
BufferedOutputStream bw=new BufferedOutputStream(new FileOutputStream("copy_pic.png"));
byte []bytes = new byte[1024];
int len = 0;
while((len=br.read(bytes))!=-1){
bw.write(bytes,0,len);
}
br.close();
bw.close();
|