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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© xuehuayous 中级黑马   /  2014-3-25 15:57  /  969 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 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. }
复制代码



评分

参与人数 1技术分 +1 收起 理由
枫儿 + 1 神马都是浮云

查看全部评分

1 个回复

倒序浏览
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)
不知你问的是不是这个问题

评分

参与人数 1技术分 +1 收起 理由
ily521125 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马