黑马程序员技术交流社区

标题: 练习复制图片结果查看时目的图片是损坏的代码哪里有问... [打印本页]

作者: 我叫MT    时间: 2014-1-9 11:12
标题: 练习复制图片结果查看时目的图片是损坏的代码哪里有问...
  1. /*
  2. 流操作的基本规律:
  3. 最痛苦的就是流对象有很多,不知道该用哪一个。
  4. 通过三个明确来完成。
  5. 1,明确源和目的。
  6.         源:输入流。InputStream  Reader
  7.         目的:输出流。OutputStream  Writer。
  8. 2,操作的数据是否是纯文本。
  9.         是:字符流。
  10.         不是:字节流。
  11. 3,当体系明确后,在明确要使用哪个具体的对象。
  12.         通过设备来进行区分:
  13.         源设备:内存,硬盘。键盘
  14.         目的设备:内存,硬盘,控制台。
  15. */
  16. /*
  17. 练习:将一个图片文件中数据存储到另一个文件中。复制文件。要按照以上格式自己完成三个明确。
  18. 1.        明确源;输入流InputStream  Reader
  19.         是否纯文本?否!用字节流  InputStream
  20.         源设备;硬盘 具体对象为FileInputStream
  21.         FileInputStream fis = new FileInputStream("C:\\asd.jpg");
  22. 2        明确目的;输出流OutputStream Writer
  23.         是否是纯文本?否!用字节流 OutputStream
  24.         源设备:硬盘 具体对象为FileOutputStream
  25.         FileOutputStream fos = new FileOutputStream("asz.jpg");
  26. */
  27. import java.io.*;
  28.         class Copy_Picture1
  29. {
  30.         public static void main(String[] args) throws IOException
  31.         {
  32.                 BufferedReader bufr = new BufferedReader(new InputStreamReader(new FileInputStream("C:\\asd.jpg")));
  33.                 BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("asz.jpg")));
  34.                 String line = null;
  35.                 while((line=bufr.readLine())!=null)
  36.                 {
  37.                         bufw.write(line);
  38.                         bufw.flush();
  39.                 }
  40.                 bufr.close();
  41.         }
  42. }
复制代码
哪里出问题了?请指教
作者: FFF    时间: 2014-1-9 11:22
图片是媒体文件。应该用字节流。
作者: 我叫MT    时间: 2014-1-9 11:44
FFF 发表于 2014-1-9 11:22
图片是媒体文件。应该用字节流。

我明白要用字节流,可代码哪块用错了啊?
作者: FFF    时间: 2014-1-9 11:47
我叫MT 发表于 2014-1-9 11:44
我明白要用字节流,可代码哪块用错了啊?

骚年~~BufferedReader与BufferedWriter是字符缓冲流。
作者: 我叫MT    时间: 2014-1-9 11:51
那用BufferedInputStream与BufferedOutputStream会报错怎么办
作者: 黄晓鑫    时间: 2014-1-9 13:27
你用的是字符流
作者: 黄晓鑫    时间: 2014-1-9 13:29
你别转换new InputStreamReader 就不会报粗 你这个是把字节转车字符
作者: 我叫MT    时间: 2014-1-9 14:53
̅Xcc̲ 发表于 2014-1-9 13:29
你别转换new InputStreamReader 就不会报粗 你这个是把字节转车字符

我转它是为了用字符流中读一行的方法,现在问题就是说转成字符后如何再把写入时它转成字节
作者: 猎鹰tianya    时间: 2014-1-9 22:21
我叫MT 发表于 2014-1-9 14:53
我转它是为了用字符流中读一行的方法,现在问题就是说转成字符后如何再把写入时它转成字节 ...

既然读图片,为啥要读一行呢?
作者: belief丶Only    时间: 2014-1-10 15:32
读取图片你只有字节来读,读一行是不行的,只有纯文本文件可以.其他一律用字节一个一个获取
所以你的缓冲区应该用字节的缓冲区BufferedInputStream 和BufferedOutputStream




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2