`
hm4123660
  • 浏览: 282381 次
  • 性别: Icon_minigender_1
  • 来自: 广州
博客专栏
Dea4ce76-f328-3ab2-b24a-fb268e1eeb75
数据结构
浏览量:69988
社区版块
存档分类
最新评论

IO流之缓冲流

    博客分类:
  • Java
阅读更多

        缓冲流本身不具IO功能,只是在别的流上加上缓冲提高效率,像是为别的流装上一种包装。当对文件或其他目标频繁读写或操作效率低,效能差。这时使用缓冲流能够更高效的读写信息。因为缓冲流先将数据缓存起来,然后一起写入或读取出来。所以说,缓冲流还是很重要的,在IO操作时记得加上缓冲流提升性能。

 

       缓冲流分为字节和字符缓冲流

字节缓冲流为:

BufferedInputStream—字节输入缓冲流

BufferedOutputStream—字节输出缓冲流

字符缓冲流为:

BufferedReader—字符输入缓冲流

BufferedWriter—字符输出缓冲流

下面主要介绍这四种缓冲流的使用。

 

一.字节缓冲流

1.BufferedOutputStream—字节输出缓冲流

           BufferedOutputStream类实现缓冲的输出了,通过设置这种输出流,应用程序就可以将各个字节写入底层输出流中,而不必每一个字节写入都调用底层系统。

该类的构造函数:



 

示例代码:

    public static void main(String[] args) {       
       try {
    	//创建字节输出流实例
		OutputStream out=new FileOutputStream("L:\\test.txt");
		//根据字节输出流构建字节缓冲流
		BufferedOutputStream buf=new BufferedOutputStream(out);
		
		String data="好好学习,天天向上";
		buf.write(data.getBytes());//写入缓冲区
		buf.flush();//刷新缓冲区,即把内容写入
		//关闭流
		buf.close();//关闭缓冲流时,也会刷新一次缓冲区
		out.close();
		
	} catch (IOException e) {
		e.printStackTrace();
	}
   
    }  

 

2.BufferedInputStream—字节输入缓冲流

               BufferedInputStream为别的输入流添加缓冲功能,在创建BufferedInputStream时会创建一个内部缓冲数组,用于缓冲数据,提高性能。

    

 

 

 

示例代码:

public static void main(String[] args) {       
       try {
    	//创建字节输入流实例
		InputStream in=new FileInputStream("L:\\test.txt");
		//根据字节输入流构建字节缓冲流
		BufferedInputStream buf=new BufferedInputStream(in);
		
		byte[]bytes=new byte[1024];
		//数据读取
		int len=-1;
		StringBuffer  sb=new StringBuffer();
		while((len=buf.read(bytes))!=-1)
		{
			sb.append(new String(bytes,0,len));
		}
		System.out.println("内容为:"+sb);
		//关闭流
		buf.close();
		in.close();
		
		
	} catch (IOException e) {
		e.printStackTrace();
	}
   
    }  

 运行结果:



 

二.字符缓冲流

 

1.BufferedWriter—字符输出缓冲流

            将文本写入字符输出流,缓冲各个字符,从而提供高效的写入。可以指定缓冲区的大小,一般情况下,默认的缓冲区大小就足够了。



 

 

示例代码:

 public static void main(String[] args) {
    	
    	try {
			Writer w=new FileWriter("L:\\test.txt");
			//根据字符输出流创建字符缓冲流
			BufferedWriter buf=new BufferedWriter(w);
			//写入数据
			buf.write("只要功夫深铁杵磨成针");
			//刷新流
			buf.flush();
			//关闭流
			buf.close();
			w.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
    	
   
    }  

 运行结果:



 

 

2.BufferedReader—字符输入缓冲流

         从字符输入流中读取信息,缓冲各个字符,从而实现高效读取。可以指定缓冲区的大小,一般情况下,默认的缓冲区大小就足够了。默认大小为8192.

 

示例代码:

public static void main(String[] args) {
    	
    	try {
			Reader r=new FileReader("L:\\test.txt");
			//根据字符输入流创建字符缓冲流
			BufferedReader buf=new BufferedReader(r);
			
			char [] data=new char[512];
			//数据读取
			int len=-1;
			StringBuilder sb=new StringBuilder();
			while((len=buf.read(data))!=-1)
			{
				sb.append(new String(data,0,len));
			}
			System.out.println("内容是: "+sb);
			//关闭流
			buf.close();
			r.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
    	
   
    }  

 运行结果:



 

  • 大小: 20.4 KB
  • 大小: 8.4 KB
  • 大小: 5.1 KB
  • 大小: 10.3 KB
  • 大小: 5.5 KB
  • 大小: 5.8 KB
4
1
分享到:
评论

相关推荐

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

    2、常用21个IO流:FileWriter、FileReader、CharArrayReader、CharArrayWriter、CharSequence、OutputStreamWriter、FileOutputStream、InputStreamReader、PrintWriter、BufferedReader、InputStream、...

    IO流之字符流,缓冲流.xmind

    IO流之字符流,缓冲流.xmind

    详解java IO流之缓冲流的使用

    Java IO流中的缓冲流是提高I/O操作性能的重要工具,它们并不直接进行读写操作,而是作为其他流的包装,通过内存缓冲区来优化数据传输。缓冲流分为字节缓冲流和字符缓冲流,每种又有输入和输出两种类型。 1. 字节...

    IO流、Xml解析

    IO流还包括输入流(Input Stream)、输出流(Output Stream)、缓冲流(Buffered Stream)、转换流(Converter Stream)以及对象流(Object Stream)等子类,它们各自有不同的功能和应用场景。例如,FileInputStream...

    IO流 javaio java 流

    8. 考虑到效率,通常会结合使用缓冲流和转换流,以减少与底层系统的交互次数,提高性能。 9. 异常处理: - 在进行IO操作时,需捕获IOException,这是所有IO异常的基类。 总的来说,Java的IO流体系结构复杂而强大...

    IO流pdf宝典

    4. **性能优化**:合理使用缓冲流(`BufferedReader`, `BufferedWriter`, `BufferedInputStream`, `BufferedOutputStream`)可以显著提高读写效率。 #### 六、流是否都需要关闭 原则上,所有的流都应该在使用完毕后...

    Java-Io流,练习

    Java的IO流是Java编程语言中的重要组成部分,它主要用于数据的输入和输出操作。在Java中,IO流被设计为处理任何类型的数据,包括字符、字节甚至对象。本练习旨在帮助初学者理解和掌握Java IO流的基础知识。 一、IO...

    JavaIO实例_字节流_字符流_缓冲流_转换流IODemo

    在Java中,IO流分为两大类:字节流和字符流,每种流又有输入流和输出流之分,分别用于数据的读取和写入。 1. **字节流**: - 字节流处理的是8位的字节数据,是最基本的流类型。Java中的`InputStream`和`...

    IO流的主要流

    处理流则建立在其他流之上,提供额外的功能,如缓冲、转换、格式化等。 在实际开发中,我们通常会结合使用不同的流类型来构建复杂的流处理链,例如使用InputStreamReader包装InputStream,然后用BufferedReader...

    java之io流实例

    - FilterInputStream和FilterOutputStream是过滤流,它们可以附加在其他流之上,增加额外的功能,比如校验和计算、数据压缩等。 6. 文件操作: - File类是Java处理文件的基础,提供了创建、删除、重命名文件以及...

    Java的IO流讲解代码: File 类、RandomAccessFile 类、字节流(文件字节流、缓冲字节流、基本数据类型

    该代码源码资源是一个用于讲解Java IO流的示例代码库。它包含了常见的IO类和方法的使用示例,旨在帮助理解和掌握Java中的输入输出操作。 包含: File 类、RandomAccessFile 类、字节流(文件字节流、缓冲字节流、...

    IO流宝典.pdf

    Java IO流是Java平台核心特性之一,用于处理输入和输出数据。这个概念是Java编程中的基石,对于任何涉及数据传输或文件操作的应用程序都至关重要。《IO流宝典》这本书全面深入地探讨了这一主题,旨在帮助读者从基础...

    java io流 案例

    字符流通常在字节流之上构建,以提供更高效、更方便的文本操作。 在Java IO中,缓冲流(Buffered Stream)被设计用来提高性能,通过在内部创建缓冲区来存储数据。BufferedInputStream和BufferedOutputStream是缓冲...

    java基础之IO流

    ### Java IO流基础知识点 #### 一、IO流概述 - **定义**:在Java中,IO流(Input/Output Streams)是用来处理输入输出的基本工具。流是一种有序的数据集合,通常涉及从源到目的地的数据传输过程。源可以是文件、...

    Java基础篇:IO流.pdf

    本知识点将深入探讨Java IO流的相关细节,包括节点流与处理流的概念,以及文件流、标准输入输出流、缓冲流、转换流、打印流、数据流和对象流的处理过程和使用方法。 首先,Java中的IO流根据数据流向可以分为输入流...

    map集合以及IO流

    在实际开发中,`IO流`的使用需要考虑缓冲、异常处理以及关闭流等问题。Java 7引入了try-with-resources语句,可以更方便地管理资源,确保流在使用完毕后被正确关闭。 总结来说,`Map`集合提供了键值对的存储,`Set`...

    Java IO流 总结

    缓冲流是Java IO流中的一种优化机制,负责将数据缓存在内存中,以提高输入/输出性能。 a) 输入流:BufferedInputStream BufferedReader BufferedInputStream和BufferedReader是缓冲流的输入流,负责将数据缓存在...

    JAVA IO流技术

    Java IO流技术是Java平台中用于处理输入输出的重要机制,其核心在于数据的传输,从数据源到程序或从程序到目的地。在Java中,流分为两大类:输入流(InputStream、Reader)和输出流(OutputStream、Writer)。输入流...

    IO流三种流方式的文本文件的复制

    在Java编程语言中,IO流(Input/Output流)是用来处理数据输入与输出的重要工具。在文本文件的复制过程中,通常会用到三种主要的流类型:字节流(Byte Stream)、字符流(Character Stream)以及缓冲流(Buffered ...

Global site tag (gtag.js) - Google Analytics