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

1.缓冲流介绍

1)        缓冲流要“套接”在相应的节点上,对读写的数据提供了缓冲的功能,提高读写的效率,同时增加了一些新的方法。

2)        J2SDK提供了四种缓存流,其常用的构造方法为:

BufferedReader(Reader in)
BufferedReader(Reader in, int sz)  //sz为自定义缓存区的大小
BufferedWriter(Writer out)
BufferedWriter(Writer out, int sz)
BufferedInputStream(InputStream in)
BufferedInputStream(InputStream in, int size)
BufferedOutputStream(OutputStream out)
BufferedOutputStream(OutputStream out, int size)

3)        缓冲输入流支持父类的mark和reset方法。

4)        BufferedReader提供了readLine方法用于读取一行字符串(以\r或\n分隔)。

5)        BufferedWriter提供newLine用于写入一个行分隔符。

6)        对于输出的缓冲流,写出的数据会先在内存中缓存,使用flush方法会将内存中的数据立刻写出。

2. 缓冲流例子一

package com.owen.io;

import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;

/**
 * 使用BufferedInputStream的缓冲流,处理读取字节流
 * 
 * @author OwenWilliam 2016-7-19
 * @since
 * @version v1.0.0
 *
 */
public class TestBufferStream1
{

	public static void main(String[] args)
	{
		try
		{
			FileInputStream fis = new FileInputStream(
					"E:/workspace/Java/IO/src/com/owen/io/TestFileWriter.java");
			BufferedInputStream bis = new BufferedInputStream(fis);
			int c = 0;
			System.out.println(fis.read());
			System.out.println(bis.read());
			// 从第100个字符读起
			bis.mark(100);
			for (int i = 0; i <= 10 && (c = bis.read()) != -1; i++)
			{
				System.out.print((char) c + " ");
			}
			System.out.println();
			// 重置回到第100个字符的位置
			bis.reset();
			for (int i = 0; i <= 10 && (c = bis.read()) != -1; i++)
			{
				System.out.print((char) c + " ");
			}
			bis.close();
		} catch (IOException e)
		{
			e.printStackTrace();
		}
	}

}

3.缓冲流例子二

package com.owen.io;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

/**
 * 使用BufferedWriter和BufferedReader实现写入与写出
 * 
 * @author OwenWilliam 2016-7-19
 * @since
 * @version v1.0.0
 *
 */
public class TestBufferStream2
{

	public static void main(String[] args)
	{

		try
		{
			// 写入文件
			BufferedWriter bw = new BufferedWriter(new FileWriter(
					"E:/workspace/Java/IO/src/com/owen/io/data2.txt"));
			// 读取文件
			BufferedReader br = new BufferedReader(new FileReader(
					"E:/workspace/Java/IO/src/com/owen/io/data2.txt"));
			String s = null;
			for (int i = 1; i <= 100; i++)
			{
				s = String.valueOf(Math.random());
				bw.write(s);
				// 写入一行分隔符
				bw.newLine();
			}
			// 缓存中数据 立刻写出
			bw.flush();
			// 一行一行写出
			while ((s = br.readLine()) != null)
			{
				System.out.println(s);
			}
			bw.close();
			br.close();
		} catch (IOException e)
		{
			e.printStackTrace();
		}
	}

}





  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值