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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始


  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. }
复制代码


6 个回复

倒序浏览
因为你是用的 BufferedReader和 BufferedWriter操作的Reader和Writer主要是用来操作字符的,操作其他文件时可能会导致原始文件的字节码被改变,用InputStream和OutputStream体系去操作就不会有那样的问题了
回复 使用道具 举报
厉害。非常
回复 使用道具 举报
你想复制一张图片,必须用字节了流
好吧你用了,可是你又加了装换流加了缓冲区,这不又变成字符流了吗
去掉你的装换流,缓冲区
如果你需要高效的读写,自定义一个字节型数组
回复 使用道具 举报 1 0
zeus00456 发表于 2014-8-9 13:54
你想复制一张图片,必须用字节了流
好吧你用了,可是你又加了装换流加了缓冲区,这不又变成字符流了吗
去掉 ...

哎,真是尽信书不如无书光顾着规则了
回复 使用道具 举报
BufferedReader-->BufferedInputStream
BufferedWriter-->BufferedOutputStream
String s-->byte[] buf
回复 使用道具 举报
复制图片不用一行一行的读,你上了换行符
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马