Java基础回顾 : 处理流(缓冲流)

原创 2016年05月31日 15:07:18

首先,来看一下 , 流的分类 :

① . 流的方向 :
        输入流 :数据源到程序(InputStream、Reader读进来)
        输出流 : 程序到目的地(OutputStream、Writer写出去)
② . 处理数据单元 :
        字节流 : 按照字节读取数据(InputStream、OutputStream)
        字符流 : 按照字符读取数据(Reader、Writer)
③ . 功能不同 :
        节点流 : 可以直接从数据源或目的地读写数据
        处理流 : 不直接连接到数据源或目的地 , 是处理流的流 , 通过对其他流的处理提高程序的性能 .
节点流和处理流的关系 :
        节点流处于IO操作的第一线 , 所有操作必须通过他们进行 ;处理流在节点流之上,可以对其他流进行处理(提高效率或操作灵活性)


eg : 使用缓冲流对文件进行操作 :

package example;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.InputStream;
import java.io.OutputStream;
/**
 * 文件的操作,加入缓冲流,提高性能.
 * @author Miao
 *
 */
public class TestDemo {
	public static void main(String[] args) throws Exception {
		
	}
	
	/**
	 * 用字节缓冲输出流,往指定文件输入内容
	 * @throws Exception
	 */
	public static void store() throws Exception {
		String msg = "好好学习,天天向上.";
		File destFile = new File("e:\\msg\\msg.txt");
		if(!destFile.getParentFile().exists()) {
			destFile.getParentFile().mkdirs();
		}
		//加入缓冲流,提高性能.因为BufferedOutputStream类中没有新增方法,可以使用向上转型
		OutputStream is = new BufferedOutputStream(new FileOutputStream(destFile));
		byte data[] = msg.getBytes();
		is.write(data);
		is.flush();
		is.close();
	}
	
	/**
	 * 用字节缓冲输入流,从指定文件中输出内容
	 * @throws Exception
	 */
	public static void load() throws Exception{
		File srcFile = new File("e:\\msg\\msg.txt");
		if(srcFile.exists()) {
			//加入缓冲流,提高性能.因为BufferedInputStream类中没有新增方法,可以使用向上转型
			InputStream is = new BufferedInputStream(new FileInputStream(srcFile));
			byte buf[] = new byte[1024];
			int len = 0;
			while((len=is.read(buf)) != -1) {
				System.out.println(new String(buf,0,len));
			}
			is.close();
		}
	}
	
	/**
	 * 用字符缓冲输出流,往指定文件输入内容
	 * @throws Exception
	 */
	public static void save() throws Exception{
		String msg = "好好学习,天天向上.";
		File destFile = new File("e:\\msg\\msg.txt");
		if(!destFile.getParentFile().exists()) {
			destFile.getParentFile().mkdirs();
		}
		//加入缓冲流,使用新增方法,不能用向上转型
		BufferedWriter writer = new BufferedWriter(new FileWriter(destFile));
		writer.write(msg);
		//新增的方法newLine()
		writer.newLine();
		writer.flush();
		writer.close();
	}
	
	/**
	 * 用字符缓冲输入流,从指定文件中输出内容
	 * @throws Exception
	 */
	public static void get() throws Exception {
		File srcFile = new File("e:\\msg\\msg.txt");
		if(srcFile.exists()) {
			//加入字符缓冲流,使用新增方法,不能用向上转型
			BufferedReader reader = new BufferedReader(new FileReader(srcFile));
			String buf = null;
			//新增方法readLine()
			while((buf=reader.readLine()) != null) {
				System.out.println(new String(buf));
			}
			reader.close();
		}
	}
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

Java IO之处理流(缓冲流、转换流)

一、处理流:增强功能,提供性能,在节点流之上。二、节点流与处理流的关系节点流(字节流、字符流)处于IO操作的第一线,所有操作必须通过它们进行; 处理流可以对其他流进行处理(提高效率或操作灵活性)。三...
  • scgaliguodong123_
  • scgaliguodong123_
  • 2015年05月23日 18:57
  • 2152

节点流和处理流

JAVA IO 操作总结——节点流和处理流    按照流是否直接与特定的地方(如磁盘、内存、设备等)相连,分为节点流和处理流两类。      节点流:可以从或向一个特定的地方(节点)读写数据。...
  • zhuojiuyihu
  • zhuojiuyihu
  • 2012年02月29日 20:24
  • 9088

节点流和处理流简单总结

节点流和处理流                 “按照流是否直接与特定的地方(如磁盘、内存、设备等)相连,分为节点流和处理流两类。”      节点流:可以从或向一个特定的地方(节点)读写...
  • Light_Travlling
  • Light_Travlling
  • 2017年06月09日 20:00
  • 190

JAVA——IO流 之 节点流与处理流(2)

1. 流的分类 按数据流的方向不同:输入流,输出流。 按处理数据单位不同:字节流,字符流。 (1) 字节流:数据流中最小的数据单元是字节。 (2)字符流:数据流中最小的数据单元是字符, Java中...
  • jingzi123456789
  • jingzi123456789
  • 2017年05月15日 15:37
  • 688

处理流之缓冲流

  • ld513508088
  • ld513508088
  • 2012年11月27日 15:06
  • 151

Java 缓冲流简介及简单用法

在java编程中, 我们有时会tingda
  • nvd11
  • nvd11
  • 2014年07月01日 23:55
  • 3253

Java I/O系统之处理流类型

1.缓冲流介绍 1)        缓冲流要“套接”在相应的节点上,对读写的数据提供了缓冲的功能,提高读写的效率,同时增加了一些新的方法。 2)        J2SDK提供了四种缓存流,其常...
  • owen_william
  • owen_william
  • 2016年08月06日 17:57
  • 849

JAVA的节点流和处理流以及流的关闭顺序

节点流:可以从或向一个特定的地方(节点)读写数据。如FileReader.处理流:是对一个已存在的流的连接和封装,通过所封装的流的功能调用实现数据读写。如BufferedReader.处理流的构造方法...
  • u014617239
  • u014617239
  • 2016年08月19日 16:51
  • 2064

java缓冲流,数据流和对象流

一:缓冲流 1:定义:在内存与硬盘之间创建一个大小合适的缓冲区,当内存和硬盘进行数据访问时,能提高访问硬盘的次数,提高效率。 2:分类:缓冲分为字节缓冲流(BufferedInputStream和...
  • xxx77889900
  • xxx77889900
  • 2016年10月24日 14:38
  • 1459

java里面的节点流和处理流

按照流是否直接与特定的地方(如磁盘、内存、设备等)相连,分为节点流和处理流两类。   节点流:可以从或向一个特定的地方(节点)读写数据。如FileReader.   处理流:是对一个已存在的流的连接和...
  • layman1024
  • layman1024
  • 2017年05月26日 18:27
  • 591
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java基础回顾 : 处理流(缓冲流)
举报原因:
原因补充:

(最多只允许输入30个字)