JAVA——IO流 篇二

缓冲区:提高了对数据的读写效率,程序频繁的操作一个文件,性能是比较低的,为了提高性能,就可以一次性读取部分数据放入到内存中,其他需要对这部分数据进行操作的则直接通过内存操作。
在java中对于字符操作有输入缓冲区(BufferedReader),输出缓冲区(BufferedWriter).
BufferedWriter将文本写入字符输出流,通过缓冲区,以提供更高效的写入。
BufferedWriter(Writer out);创建使用默认大小的输出缓冲区的缓冲字符输出流。
BufferedWriter(Writer out, int sz);创建一个新的缓冲字符输出流,使用给定大小的输出缓冲区。
例如:向文件buf.txt写入5行内容,每行内容为abcdefg+行数

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

public class BufferWriterDemo
{
	public static void main(String[] args) throws IOException
	{
		//创建一个可以往文件中写入字符数据的输出流对象
		FileWriter fileWriter = new FileWriter("buf.txt");
		//创建了一个字符写入流的缓冲区对象,并和指定要被缓冲的流对象相关联
		BufferedWriter bufferWriter = new BufferedWriter(fileWriter);
		for(int i = 1; i <= 5;i++) 
		{
			bufferWriter.write("abcdef"+ i);//使用缓冲区的写入方法将数据先写入到缓冲区中
			bufferWriter.newLine();//写入一个行分隔符
			bufferWriter.flush();
		}
		//使用缓冲区的刷新方法将数据刷到目的地中
		//bufferWriter.flush();
		//关闭缓冲区,其实关闭的就是被缓冲的流对象
		bufferWriter.close();		
	}
}

主要方法有:
void close(); 关闭流,先会刷新流,实际上调用了Writer类的close方法
void flush(); 刷新该流的缓冲
void newLine(); 写入一个行分隔符。行分隔符字符串由系统属性 line.separator 定义

BufferedReader从字符输入流读取文本,通过缓冲区,以提供更高效的读取。
BufferedReader(Reader in);创建使用默认大小的输入缓冲区的缓冲字符输入流。
BufferedReader(Reader in, int sz);创建使用指定大小的输入缓冲区的缓冲字符输入流
例如:读取上述buf.txt文件

import java.io.BufferedReader;
import java.io.FileReader;

public class BufferRead
{
	public static void main(String[] args) throws Exception
	{
		FileReader fileReader = new FileReader("buf.txt");
		BufferedReader bufferedReader = new BufferedReader(fileReader);
		String lineString = null;
		//包含该行内容的字符串,不包含任何行终止符,如果已到达流末尾,则返回 null 
		while((lineString = bufferedReader.readLine()) != null) 
		{
			System.out.println(lineString);
		}
		bufferedReader.close();
	}
}

public String readLine();;读一行文字,一行被视为由换行符(’\ n’),回车符(’\ r’)中的任何一个或随后的换行符终止,如果已达到流的末尾,则为null 。即 readLine()使用了读取缓冲区的read方法,将读取到的字符进行缓冲并判断换行标记,将换行标记前的缓存数据编程字符串返回。
也可通过以前的方式读取数据:

	    char[] buf = new char[1024];
		int size = 0;
		while( (size = bufferedReader.read(buf)) != -1) 
		{
			System.out.println(new String(buf,0,size));
		}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值