黑马程序员技术交流社区

标题: 关于io的一些小问题 [打印本页]

作者: 宋超2356    时间: 2014-4-1 18:29
标题: 关于io的一些小问题
本帖最后由 宋超2356 于 2014-4-2 19:37 编辑

  1. import java.io.*;

  2. public class Test  {
  3.         public static void main(String[] args) throws IOException {
  4.                 FileInputStream fis = new FileInputStream("d:/java/Person.java");
  5.                 BufferedInputStream bis = new BufferedInputStream(fis);
  6.                 BufferedOutputStream bos = new BufferedOutputStream(
  7.                                 new FileOutputStream("d:/java/Person1.java"));
  8.                
  9.                 int num;
  10.                 byte [] buf = new byte[1024];
  11.                
  12.                 /*while((num = bis.read(buf)) != -1) {
  13.                         System.out.println(new String(buf,0,num));
  14.                         bos.write(buf,0,num);
  15.                 }
  16.                 */
  17.                 while((num = fis.read(buf)) != -1) {
  18.                         System.out.println(new String(buf,0,num));
  19.                 }

  20.                 bis.close();bos.close();//这里还有必要关闭fis么?
  21.         }

  22. }
复制代码
注释掉的事buffered...的缓冲流复制文件,与普通的file...流有什么区别?感觉效果一样啊,嵌套buffered...的意义在哪?

作者: osully    时间: 2014-4-1 18:38
关闭buffer的流  其实还是调用的 fis的close
buffer就是个缓冲区
有了此缓冲区就可以不写byte[] 数组了  你试试吧
作者: Engle    时间: 2014-4-1 20:04
如果不用缓冲流的话,程序是读一个数据,写一个数据。这样在数据量大的程序中非常影响效率。
缓冲流作用是把数据先写入缓冲区,等缓冲区满了,再把数据写到文件里。这样效率就大大提高了
作者: leon_hm    时间: 2014-4-1 20:05
  1. BufferedInputStream bufis = new BufferedInputStream(new FileInputStream("1.mp3"));
  2.                 BufferedOutputStream bufos = new BufferedOutputStream(new FileOutputStream("2.mp3"));

  3.                 int by =0;
  4.                 while ((by=bufis.read())!=-1)
  5.                 {
  6.                         bufos.write(by);
  7.                 }

  8.                 bufos.close();
  9.                 bufis.close();
复制代码

可以用read方法就不需要定义byte[] buf了。BufferedInputStream中有缓存,应该能提高效率




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