黑马程序员技术交流社区

标题: 求大神来解决以下问题,谢谢了! [打印本页]

作者: heimafeng    时间: 2015-8-10 21:40
标题: 求大神来解决以下问题,谢谢了!
/** 使用带缓冲功能的字节流复制文件。
*         思路:1:创建高效字节输入流对象读取要复制的目标文件
*                  2:创建高效字节输出流对象把读到的数据写入到目的地
*/
作者: 段山虎    时间: 2015-8-10 23:40
难看  !!!!真好   不粗品     太 给力   很 喜欢   头像很恶心
作者: 周博文    时间: 2015-8-11 00:16
  1. import java.io.BufferedInputStream;
  2. import java.io.BufferedOutputStream;
  3. import java.io.FileInputStream;
  4. import java.io.FileOutputStream;
  5. import java.io.IOException;

  6. /*
  7. * 需求:使用带缓冲功能的字节流复制文件。
  8. *
  9. * 分析:首先解决复制文件这类问题要高清三点:
  10. * 1.源文件:既然题目要求是字节流,那么源文件可以是任意类型文件,例如mp3,txt,bmp......
  11. *                   此处我以复制一个.mp3文件为例
  12. * 2.目标文件:类型需要与源文件一致,名字任意,例如:target.mp3
  13. * 3.使用流的类型:文件字节流  + 缓冲流
  14. * 搞清楚以上三点之后就知道数据的流向为:
  15. *                         source.mp3--->字节缓冲流--->target.mp3
  16. * 这里务必要清楚缓冲流是对字节流的一种包装,以提高复制文件的效率。
  17. * 因此具体的复制文件的步骤如下:
  18. * 1.定义一个文件字节缓冲输入流,输入源文件为:source.mp3(你可以任意找一首歌作为替代)
  19. * 2.定义一个文件字节缓冲输出流,输出目标文件为:target.mp3
  20. * 3.选择两种复制文件的方式的一种
  21. *                 A:一次复制一个字节
  22. *                 B:一次复制一个字节数组
  23. * 4.调用输入流的read方法将源文件内容读入程序
  24. * 5.调用输出流的write方法将文件内容写入目标文件
  25. * 6.调用流的close方法关闭资源
  26. */
  27. public class IODemo {
  28.         public static void main(String[] args) throws IOException {
  29.                 //定义一个文件字节输入流
  30.                 FileInputStream fis = new FileInputStream("source.mp3");
  31.                 //用缓冲流包装字节输入流
  32.                 BufferedInputStream bis = new BufferedInputStream(fis);
  33.                 //定义一个文件字节输出流
  34.                 FileOutputStream fos = new FileOutputStream("target.mp3");
  35.                 //用缓冲流包装字节输出流
  36.                 BufferedOutputStream bos = new BufferedOutputStream(fos);
  37.                
  38.                 //这里选择第二种复制方式:一次复制一个字节数组
  39.                 //定义一个字节数组,长度为1024作为缓冲区
  40.                 byte[] bytes = new byte[1024];
  41.                 //定义一个变量len用于记录每次读入缓冲区数据的长度
  42.                 int len = 0;
  43.                 //对循环对文件数据进行读入和写出
  44.                 while((len = bis.read(bytes)) != -1) {
  45.                         bos.write(bytes, 0, len);
  46.                 }
  47.                
  48.                 //关闭资源
  49.                 bis.close();
  50.                 bos.close();
  51.         }
  52. }
复制代码

作者: heimafeng    时间: 2015-8-11 21:52
这个问题没有人回答我吗!
作者: 小胡子721    时间: 2015-8-11 22:08
还木有学,还不会
作者: llwhcm    时间: 2015-8-12 00:39
顶一下
作者: icichacici    时间: 2015-8-12 06:46
你说的没有错哦
作者: heimafeng    时间: 2015-8-12 21:49
黑马真是太给力了!希望黑马以后会越来越好!
作者: heimafeng    时间: 2015-8-14 23:42
黑马会越来越好




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