`
xyheqhd888
  • 浏览: 404225 次
  • 性别: Icon_minigender_1
  • 来自: 秦皇岛
社区版块
存档分类
最新评论

BufferedInputStream和BufferedOutputStream类

 
阅读更多

1.  java.io.BufferedInputStream与java.io.BufferedOutputStream可以为InputStream,OutputStream类增加缓冲区功能。构建BufferedInputStream实例时,需要给定一个InputStream类型的实例,实现BufferedInputStream时,实际上最后是实现InputStream实例。同样,构建BufferedOutputStream时,也需要给定一个OutputStream实例,实现BufferedOutputStream时,实际上最后是实现OutputStream实例。

2. BufferedInputStream的数据成员buf是一个位数组,默认为2048字节。当读取数据来源时,例如文件,BufferedInputStream会尽量将buf填满。当使用read()方法时,实际上是先读取buf中的数据,而不是直接对数据来源作读取。当buf中的数据不足时,BufferedInputStream才会再实现给定的InputStream对象的read()方法,从指定的装置中提取数据

3. BufferedOutputStream的数据成员buf也是一个位数组,默认为512字节。当使用write()方法写入数据时实际上会先将数据写到buf中,当buf已满时才会实现给定的OutputStream对象的write()方法,将buf数据写到目的地,而不是每次都对目的地作写入的动作

package ysu.hxy;

import java.io.*;

public class BufferedStreamDemo
{
	public static void main(String[] args)
	{
		try
		{
			byte[] data = new byte[1];

			File srcFile = new File(args[0]);
			File desFile = new File(args[1]);

			BufferedInputStream bufferedInputStream = 
				new BufferedInputStream(new FileInputStream(srcFile));

			BufferedOutputStream bufferedOutputStream = 
				new BufferedOutputStream(new FileOutputStream(desFile));

			System.out.println("复制文件:"+srcFile.length()+"字节");

			while(bufferedInputStream.read(data)!=-1)
			{
				bufferedOutputStream.write(data);
			}

			//将缓冲区中的数据全部写出
			bufferedOutputStream.flush();

			//关闭流
			bufferedInputStream.close();
			bufferedOutputStream.close();

			System.out.println("复制完成");
		}
		catch(ArrayIndexOutOfBoundsException e)
		{
			System.out.println("using:java UseFileStream src des");
			e.printStackTrace();
		}
		catch(IOException e)
		{
			e.printStackTrace();
		}
	}
};

   为了确保缓冲区中的数据一定被写出至目的地,建议最后执行flush()将缓冲区中的数据全部写出目的流中。

分享到:
评论

相关推荐

    Java中的BufferedInputStream与BufferedOutputStream使用示例

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

    Java读存二进制大文件块

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

    BufferedOutputStream与BufferedInputStream

    字节缓冲输出流: BufferedOutputStream (OutputStream out) public class BufferStreamDemo { public static void main(String[] args) throws IOException { //字节缓冲输出流: BufferedOutputStream ...

    jsp最详细教程 最容易入门

    JSP 中的文件操作............................................................BufferedInputStream 和BufferedOutputStream 类179 4.3 使用字符流读写文件..............................183 IV 4.3.1 FileReader 和...

    bytestreamdemo.zip

    java IO 字节流练习代码 FileInputStream和...BufferedInputStream 和 BufferedOutputStream DataInputStream 和 DataOutputStream ObjectInputStream和ObjectOutputStream PrintStream PushbackInputStream

    java IO流读写

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

    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

    JavaIo流分析图

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

    Java I/O 流代码实例大全(01~09)

    Java I/O 流代码实例大全(01~09) File、FileInputStream、FileOutputStream、FileReader、FileWriter、BufferedInputStream、BufferedOutputStream、BufferedReader、BufferedWriter

    BufferedInputStream.html

    java代码,使用字符流读取文件,让新手了解字符流,以及新手学习字符流。在学习过程中进步,用java中的BufferedOutputStream.

    JavaIO流精讲上

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

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

     BufferedInputStream bis = new BufferedInputStream(zipFile.getInputStream(entry));  File file = new File(filePath + entry.getName());  //加入这个的原因是zipfile读取文件是随机读取的,这就...

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

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

    IO流各个类的使用方法

    介绍了,下面这些类的具体使用方法,非常详细,值得一看 File FileFilter RandomAccessFile 【字节流】 InputStream OutputStream FileInputStream FileOutputStream DataInputStream DataOutputStream ...

    Java文件上传类-完整代码

    一个代码完整的Java文件上传类,可保存生成缩略图,可编译成class文件供JSP/Servlet调用,应用BufferedInputStream、BufferedOutputStream、FileOutputStream、SimpleDateFormat等类实现文件上传,获得当前的文件...

    JAVA基础课程讲义

    对象和类的概念 56 类和对象初步 57 测试类的定义方式 57 简单的学生类编写示例 58 内存分析 59 属性(field,或者叫成员变量) 59 引用类型 60 类的方法 60 对象的创建和使用 60 构造器(或者叫做构造方法,...

    java中实现复制文件和文件夹

    java中实现复制文件和文件夹 public static void copyFile(File sourceFile,File targetFile) throws IOException{ // 新建文件输入流并对它进行缓冲 FileInputStream input = new FileInputStream(sourceFile)...

    JDK_API_1_6

    BufferedInputStream BufferedInputStream 为另一个输入流添加一些功能,即缓冲输入以及支持 mark 和 reset 方法的能力。 BufferedOutputStream 该类实现缓冲的输出流。 BufferedReader 从字符输入流中读取文本,...

    java自学之道

    二、类和对象 1、面向对象基础 1.1 面向对象程序设计入门分析 1.2 抽象 1.3 封装 2、类 2.1 类头 2.2类体 2.3 创建对象 2.4 面向对象举例 2.5 构造函数 2.5.1 构造函数的一般概念 2.5.2 创建自己的构造函数 2.5.3...

Global site tag (gtag.js) - Google Analytics