`

BufferedInputStream和BufferedOutputStream

    博客分类:
  • Java
 
阅读更多

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数据写到目的地,而不是每次都对目的地作写入的动作

 

实现文件复制功能:

FileOutputStream fos=new FileOutputStream(file1);
FileInputStream fin=new FileInputStream(file2);

int len;
byte[]buffer=new byte[1024];   //这里需要建立缓冲区
while((len=fin.read(buffer))!=-1){  //从文件读取数据写到自定义缓冲区中
	fos.write(buffer,0,len);   //读取自定义缓冲区里长度为len的字节数据输出到文件中
}
bos.flush();

 

 

 如果使用缓存流,就不需要自己建立缓冲区

FileOutputStream fos=new FileOutputStream(file1);
FileInputStream fin=new FileInputStream(file2);

BufferedInputStream bis=new BufferedInputStream(fin);		//进行缓冲包装
BufferedOutputStream bos=new BufferedOutputStream(fos);

int len;
while((len=bis.read())!=-1){	//读取文件的数据写到BufferedInputStream 的缓冲区里去
	bos.write(len);	// 从缓冲区读取len长度的字节输出到文件中
}
bos.flush();

PS:上面的理解和测试好像有的问题。看到的朋友自己重新了解一下。我好像理解错误了。有待修改


BufferedReader 的使用

FileReader fr=new FileReader("d:/aaa.txt");
FileWriter fin=new FileWriter("d:/1231.txt");
BufferedReader br=new BufferedReader(fr);
String buffer=null;
while((buffer=br.readLine())!=null){
	fin.write(buffer);
}
fin.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 ...

    bytestreamdemo.zip

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

    JAVA基础课程讲义

    BufferedInputStream和BufferedOutputStream 156 DataInputStream和DataOutputStream 157 ObjectInputStream和ObjectOutputStream 158 PrintStream 158 Reader 158 Writer 159 FileReader和FileWriter 159 ...

    jsp最详细教程 最容易入门

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

    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 I/O 流代码实例大全(01~09)

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

    JavaIo流分析图

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

    java IO流读写

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

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

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

    BufferedInputStream.html

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

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

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

    JavaIO流精讲上

    File类概述、File类功能讲解、JAVA IO流概述、字节流、字符流、缓冲流、InputStream、OutputStream、Reader、Writer、...BufferedInputStream、BufferedOutputStream、BufferedReader、BufferedWriter的讲解...

    Java文件上传类-完整代码

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

    IO流各个类的使用方法

    BufferedInputStream BufferedOutputStream ObjectInputStream ObjectOutputStream ByteArrayInputStream ByteArrayOutputStream 【字符流】 Reader Writer InputStreamReader OutputStreamWriter BufferedReader ...

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

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

    批量打包下载

    BufferedInputStream bins = new BufferedInputStream(ins);// 放到缓冲流里面 OutputStream outs = response.getOutputStream();// 获取文件输出IO流 BufferedOutputStream bouts = new BufferedOutputStream...

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

    FileWriter、FileReader、CharArrayReader、CharArrayWriter、CharSequence、OutputStreamWriter、...BufferedOutputStream、BufferedInputStream、PipedReader、PipedWriter、PipedInputStream、PipedOutputStream...

Global site tag (gtag.js) - Google Analytics