黑马程序员技术交流社区

标题: 以下代码运行OK,怎么图片复制不成功? [打印本页]

作者: 尘埃落定    时间: 2014-8-9 11:36
标题: 以下代码运行OK,怎么图片复制不成功?

  1. /*
  2. 需求:将图片文件中的数据存储到另一个文件中。

  3. 源:FileInputStream
  4. 目的:FileOutputStream
  5. */
  6. import java.io.*;
  7. class IOTest2
  8. {
  9.         public static void main(String[] args)
  10.         {
  11.                 BufferedReader br =null;
  12.                 BufferedWriter bw =null;

  13.                 try
  14.                 {
  15.                         br = new BufferedReader(new InputStreamReader(new FileInputStream("readLine原理图.jpg")));
  16.                         bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("readLine.jpg")));
  17.                         String s = null;
  18.                         while ((s=br.readLine())!=null)
  19.                         {
  20.                                 bw.write(s);
  21.                                 bw.newLine();
  22.                                 bw.flush();
  23.                         }
  24.                        
  25.                 }
  26.                 catch (IOException e)
  27.                 {
  28.                         e.printStackTrace();
  29.                 }
  30.                 finally
  31.                 {
  32.                         try
  33.                         {
  34.                                 if (br!=null)
  35.                                 {
  36.                                         br.close();
  37.                                 }
  38.                         }
  39.                         catch (IOException e)
  40.                         {
  41.                                 e.printStackTrace();
  42.                         }
  43.                         try
  44.                         {
  45.                                 if (bw!=null)
  46.                                 {
  47.                                         bw.close();
  48.                                 }
  49.                         }
  50.                         catch (IOException e)
  51.                         {
  52.                                 e.printStackTrace();
  53.                         }
  54.                 }

  55.         }
  56. }
复制代码



作者: yqj    时间: 2014-8-9 12:18
因为你是用的 BufferedReader和 BufferedWriter操作的Reader和Writer主要是用来操作字符的,操作其他文件时可能会导致原始文件的字节码被改变,用InputStream和OutputStream体系去操作就不会有那样的问题了
作者: 沟门大杏    时间: 2014-8-9 12:24
厉害。非常
作者: zeus00456    时间: 2014-8-9 13:54
你想复制一张图片,必须用字节了流
好吧你用了,可是你又加了装换流加了缓冲区,这不又变成字符流了吗
去掉你的装换流,缓冲区
如果你需要高效的读写,自定义一个字节型数组
作者: 尘埃落定    时间: 2014-8-9 14:28
zeus00456 发表于 2014-8-9 13:54
你想复制一张图片,必须用字节了流
好吧你用了,可是你又加了装换流加了缓冲区,这不又变成字符流了吗
去掉 ...

哎,真是尽信书不如无书光顾着规则了

作者: 阿温    时间: 2014-8-9 15:13
BufferedReader-->BufferedInputStream
BufferedWriter-->BufferedOutputStream
String s-->byte[] buf
作者: 天黑偷牛    时间: 2014-8-9 16:11
复制图片不用一行一行的读,你上了换行符




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