`
songbin0201
  • 浏览: 319888 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java IO 篇之 BufferedOutputStream

 
阅读更多
OutputStream缓存方式写数据的包装器类,将多个字节写入缓存中,从缓存中写入输出流,减少IO访问次数

    public BufferedOutputStream(OutputStream out) {
	this(out, 8192);  /** 创建默认大小为8192的字节数组缓存 */
    }


    public synchronized void write(int b) throws IOException {
	if (count >= buf.length) {
	    flushBuffer(); /** 当写入缓存字节个数大于等于缓存数组长度时,写入输出流中*/
	}
	buf[count++] = (byte)b; /** 否则将字节写入缓存数组中 */
    }


一次性写入多个字节,如果字节长度大于缓冲区,自动flush到输出流中,否则需要手动调用flushBuffer方法,强制刷新数据到输出流中
public synchronized void write(byte b[], int off, int len) throws IOException {
	if (len >= buf.length) {
	    flushBuffer();
	    out.write(b, off, len);
	    return;
	}
	if (len > buf.length - count) {
	    flushBuffer();
	}
	System.arraycopy(b, off, buf, count, len);
	count += len;
    }


    private void flushBuffer() throws IOException {
        if (count > 0) {
	    out.write(buf, 0, count); /** 一次写入多个字节到输出流中,减少IO访问次数 */
	    count = 0;
        }
    }

分享到:
评论

相关推荐

    JAVA IO流缓冲字节流缓冲字符流等流经典代码示例加注释总结.rar

    2、常用21个IO流:FileWriter、FileReader、...3、JAVA IO流经典代码示例,示例从易到难。代码功能涉及字节、字符、字符串、文本文件、图片、音频、视频。演示错误用法和经典用法。 4、代码的结构可查看README文件。

    java算法,实现压缩及解压缩

     import java.io.BufferedOutputStream;  import java.io.File;  import java.io.FileInputStream;  import java.io.FileOutputStream;  import java.util.zip.ZipEntry;  import java.util.zip....

    Android实现下载zip压缩文件并解压的方法(附源码)

    前言 ...import java.io.BufferedOutputStream; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.Inp

    JavaIo流分析图

    分析Java常用IO流,包括InputStream、OutputStream、FileInputStream、FileOutputStream、BufferedInputStream、BufferedOutputStream、Reader、Writer、InputStreamReader、OutputStreamWriter、FileReader、...

    JavaIO流精讲上

    File类概述、File类功能讲解、JAVA IO流概述、字节流、字符流、缓冲流、InputStream、OutputStream、Reader、Writer、FileInputStream、FileOutputStream、InputStreamReader、OutputStreamWriter、FileReader、...

    Java IO流的很简单的介绍

    流可以根据数据单位分为字节流和字符流,根据数据流方向分为输入流和输出流,根据功能分为字节...涉及到过滤流,能提高读写的速率(BufferedOutputStream)或者提供读写java中的基本数据类型的功能(DataOutputStream)

    java IO流读写

    InputStream和OutputStream 1.DataInputStream,DataOutputStream 从Stream里读取基本类型的数据 BufferedReader,BufferedWriter...2.BufferedInputStream,BufferedOutputStream 封装了从缓冲区读写指定数量数据的方法

    Java之IO流学习总结

    Java IO流学习总结 Java流操作有关的类或接口: Java流类图结构: 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据...

    Java中的BufferedInputStream与BufferedOutputStream使用示例

    BufferedInputStream和BufferedOutputStream分别继承于FilterInputStream和FilterOutputStream,代表着缓冲区的输入输出,这里我们就来看一下Java中的BufferedInputStream与BufferedOutputStream使用示例:

    java IO习题

    一、选择题(前五题多选其余单选): 1. 读写原始数据,一般采用什么流?( ) A InputStream B DataInputStream C OutputStream D BufferedInputStream ...E OutputStream F BufferedOutputStream 答案:DF

    一个简单的Java服务器

    import java.io.BufferedOutputStream; import java.io.ByteArrayOutputStream; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import ...

    IO体系.java

    |--ObjectOutputStream/:将java对象的基本数据类型和图形写入到OutputStream。 | |--PipedOutputStream/:可以将管道输出流连接到管道输入流来创建通信管道。 | 用方法connect(PipedInputStream snk) 将此管道...

    Java读存二进制大文件块

    Java读存大块二进制资料文件,java.io 包中提供了BufferedInputStream 和BufferedOutputStream 类来缓存的读写流。但是读写大块的数据文件时,使用这两个类的效果并不是很好。本例演示了如何自定义缓存区,并使用不...

    图片文件上次,获取图片文件实际类型

    import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; ...

    Java使用线程池递归压缩文件夹下面的所有子文件

    本文将介绍Java中利用线程池递归的方式压缩...  import java.io.BufferedOutputStream;  import java.io.File;  import java.io.FileInputStream;  import java.io.FileOutputStream;  import java.io.InputS

    彻底解决jspsmartupload中文下载乱码问题

    用几个简单的java语句操作java.io.BufferedInputStream和java.io.BufferedOutputStream,就能彻底解决jspSmartUpload乱码问题。下载的时候无需再用jspsmartupload。 zip包中包含了jspsmartupload.jar和文件上传、...

    JDATASTREAMDEMO_java_

    Java reads and stores large binary data files. The java.io package provides BufferedInputStream and BufferedOutputStream classes to buffer read and write streams

    JAVA基础课程讲义

    JAVA.IO包相关流对象用法总结(尚学堂1002班王鑫) 165 IO中其他常用类 165 File类 165 RandomAccessFile 166 思考作业 166 上机作业 166 提高课外作业 166 第九章 多线程技术 167 基本概念 167 程序 167 进程 167 ...

    java IO流学习笔记——(3)字节缓冲流&字符缓冲流&转换流&数据流

    目录java IO流学习笔记——(3)字节缓冲流&字符缓冲流&转换流&数据流字节缓冲流 —BufferedInputStream&BufferedOutputStream字符缓冲流—BufferedReader&BufferedWriter转换流—InputStreamReader&...

    java自学之道

    第一篇 基础篇 第0章 JDK安装和最简单的环境变量配置方法 第1章 Java基础概念 一、 Java基础语法 1、Helloworld.java 2、标识符 3、关键字 4、常量 5、变量 6、语句 6.1 if语句和switch语句 6.1.2 if语句举例 ...

Global site tag (gtag.js) - Google Analytics