黑马程序员技术交流社区

标题: 缓冲区开辟的大小的问题 [打印本页]

作者: xuehuayous    时间: 2014-3-25 15:57
标题: 缓冲区开辟的大小的问题
本帖最后由 xuehuayous 于 2014-3-25 16:01 编辑

通过自动以缓冲区可以知道缓冲区的大小,那么调用BufferedInputStream、BufferedOutputStream开辟的缓冲区大小是多少呢?
  1. package com.itheima;

  2. import java.io.BufferedInputStream;
  3. import java.io.BufferedOutputStream;
  4. import java.io.FileInputStream;
  5. import java.io.FileOutputStream;
  6. import java.io.IOException;

  7. public class Java19_12 {
  8.         public static void main(String[] args) {
  9.                 long start = System.currentTimeMillis();
  10.                 copy();
  11.                 long end = System.currentTimeMillis();
  12.                 System.out.println((end-start)+"毫秒");
  13.         }
  14.         public static void copy() {
  15.                 FileInputStream fis = null;
  16.                 FileOutputStream fos = null;
  17.                 BufferedInputStream bufis = null;
  18.                 BufferedOutputStream bufos = null;
  19.                 try {
  20.                         fis = new FileInputStream("F:\\阿甘正传.rmvb");
  21.                         fos = new FileOutputStream("E:\\阿甘正传.rmvb");
  22.                         //定义字节流缓冲区
  23.                         bufis = new BufferedInputStream(fis);
  24.                         bufos = new BufferedOutputStream(fos);
  25.                         int by = 0;
  26.                         while((by=bufis.read())!=-1) {
  27.                                 bufos.write(by);
  28.                         }
  29.                 } catch (IOException e) {
  30.                         System.out.println("视频读写失败!");
  31.                 } finally {
  32.                         try {
  33.                                 if(fis!=null)
  34.                                         fis.close();
  35.                         } catch (IOException e) {
  36.                                 System.out.println("视频读取关闭失败!");
  37.                         }
  38.                         try {
  39.                                 if(fos!=null)
  40.                                         fos.close();
  41.                         } catch (IOException e) {
  42.                                 System.out.println("视频写入关闭失败!");
  43.                         }
  44.                 }
  45.         }
  46. }
复制代码




作者: 谭荣强    时间: 2014-3-25 21:49
InputStream在内存里开辟空间应该是虚拟机的默认内存吧,当然这个内存可以设置。我的电脑设置650mb就报错。
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
        at java.io.BufferedInputStream.<init>(BufferedInputStream.java:195)
        at lianxi.main(lianxi.java:6)
不知你问的是不是这个问题




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