A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  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. }
复制代码
哪里出问题了?请指教

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 淡定

查看全部评分

9 个回复

正序浏览
读取图片你只有字节来读,读一行是不行的,只有纯文本文件可以.其他一律用字节一个一个获取
所以你的缓冲区应该用字节的缓冲区BufferedInputStream 和BufferedOutputStream
回复 使用道具 举报
我叫MT 发表于 2014-1-9 14:53
我转它是为了用字符流中读一行的方法,现在问题就是说转成字符后如何再把写入时它转成字节 ...

既然读图片,为啥要读一行呢?
回复 使用道具 举报
̅Xcc̲ 发表于 2014-1-9 13:29
你别转换new InputStreamReader 就不会报粗 你这个是把字节转车字符

我转它是为了用字符流中读一行的方法,现在问题就是说转成字符后如何再把写入时它转成字节
回复 使用道具 举报
你别转换new InputStreamReader 就不会报粗 你这个是把字节转车字符
回复 使用道具 举报
你用的是字符流
回复 使用道具 举报
那用BufferedInputStream与BufferedOutputStream会报错怎么办
回复 使用道具 举报
我叫MT 发表于 2014-1-9 11:44
我明白要用字节流,可代码哪块用错了啊?

骚年~~BufferedReader与BufferedWriter是字符缓冲流。
回复 使用道具 举报
FFF 发表于 2014-1-9 11:22
图片是媒体文件。应该用字节流。

我明白要用字节流,可代码哪块用错了啊?
回复 使用道具 举报
图片是媒体文件。应该用字节流。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马