JAVA中常用IO流类:BufferedReader和BufferedWriter .
来源:互联网 发布:淘宝助理5一键下架宝贝 编辑:程序博客网 时间:2024/06/05 07:25
http://blog.csdn.net/caixiexin/article/details/6719482
BufferedReader类用于缓冲读取字符,将字节流封装成BufferedReader对象,然后用readLine()逐行读入字符流,直到遇到换行符为止(相当于反复调用Reader类对象的read()方法读入多个字符)
下面摘抄自JAVA API文档
public class BufferedReader
- extends Reader
从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。
可以指定缓冲区的大小,或者可使用默认的大小。大多数情况下,默认值就足够大了。
通常,Reader 所作的每个读取请求都会导致对底层字符或字节流进行相应的读取请求。因此,建议用 BufferedReader 包装所有其 read() 操作可能开销很高的 Reader(如 FileReader 和 InputStreamReader)。例如,
BufferedReader in = new BufferedReader(new FileReader("foo.in"));
将缓冲指定文件的输入。如果没有缓冲,则每次调用 read() 或 readLine() 都会导致从文件中读取字节,并将其转换为字符后返回,而这是极其低效的。
通过用合适的 BufferedReader 替代每个 DataInputStream,可以对将 DataInputStream 用于文字输入的程序进行本地化。
行本地化。
BufferedReader(Reader in)
创建一个使用默认大小输入缓冲区的缓冲字符输入流。
BufferedReader(Reader in, int sz)
创建一个使用指定大小输入缓冲区的缓冲字符输入流。
void
close()
关闭该流并释放与之关联的所有资源。
void
mark(int readAheadLimit)
标记流中的当前位置。
boolean
markSupported()
判断此流是否支持 mark() 操作(它一定支持)。
int
read()
读取单个字符。
int
read(char[] cbuf, int off, int len)
将字符读入数组的某一部分。
String
readLine()
读取一个文本行。
boolean
ready()
判断此流是否已准备好被读取。
void
reset()
将流重置到最新的标记。
long
skip(long n)
跳过字符。
BufferedWriter提供字符的缓冲写出功能
以下摘自JAVA API文档
public class BufferedWriter
- extends Writer
将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。
可以指定缓冲区的大小,或者接受默认的大小。在大多数情况下,默认值就足够大了。
该类提供了 newLine() 方法,它使用平台自己的行分隔符概念,此概念由系统属性 line.separator 定义。并非所有平台都使用新行符 ('\n') 来终止各行。因此调用此方法来终止每个输出行要优于直接写入新行符。
通常 Writer 将其输出立即发送到底层字符或字节流。除非要求提示输出,否则建议用 BufferedWriter 包装所有其 write() 操作可能开销很高的 Writer(如 FileWriters 和 OutputStreamWriters)。例如,
PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("foo.out")));
将缓冲 PrintWriter 对文件的输出。如果没有缓冲,则每次调用 print() 方法会导致将字符转换为字节,然后立即写入到文件,而这是极其低效的。
实例:使用字符处理流实现文件复制
- import java.io.*;
- class IODemo
- {
- public static void main(String[] args)
- {
- try
- {
- //使用BufferedReader和BufferedWriter进行文件复制(操作的是字符,以行为单位读入字符)
- FileReader fr=new FileReader("a.txt");
- BufferedReader br=new BufferedReader(fr);
- FileWriter fw=new FileWriter("d.txt");
- BufferedWriter bw=new BufferedWriter(fw);
- String s=br.readLine();
- while(null!=s)
- {
- bw.write(s);
- //由于BufferedReader的rendLIne()是不读入换行符的,所以写入换行时须用newLine()方法
- bw.newLine();
- //read=fis.read(b);
- s=br.readLine();
- }
- br.close();
- bw.close();
- }
- catch (IOException e)
- {
- e.printStackTrace();
- }
- }
- }
import java.io.*;class IODemo{public static void main(String[] args) {try{//使用BufferedReader和BufferedWriter进行文件复制(操作的是字符,以行为单位读入字符)FileReader fr=new FileReader("a.txt");BufferedReader br=new BufferedReader(fr);FileWriter fw=new FileWriter("d.txt");BufferedWriter bw=new BufferedWriter(fw);String s=br.readLine();while(null!=s){bw.write(s);//由于BufferedReader的rendLIne()是不读入换行符的,所以写入换行时须用newLine()方法bw.newLine();//read=fis.read(b);s=br.readLine();}br.close();bw.close();}catch (IOException e){e.printStackTrace();}}}
注:议用 BufferedReader 包装所有其 read() 操作可能开销很高的 Reader(如 FileReader 和 InputStreamReader)。
- JAVA中常用IO流类:BufferedReader和BufferedWriter
- JAVA中常用IO流类:BufferedReader和BufferedWriter .
- Java IO BufferedReader和BufferedWriter
- JAVA IO缓冲区(BufferedWriter 和 BufferedReader)
- 字符串输入输出流:java.io.BufferedReader和java.io.BufferedWriter
- java BufferedReader和BufferedWriter
- Java BufferedReader 和 BufferedWriter
- java中BufferedReader和BufferedWriter的讲解
- Java的IO流--BufferedReader和BufferedWriter,BufferedInputStream和BufferedOutputStream
- JAVA-IO流中缓存区的使用(BufferedReader和BufferedWriter)以及复制内容
- java基础之IO流中的BufferedReader和BufferedWriter
- java核心技术之IO流(五)BufferedReader和BufferedWriter
- java BufferedReader 和 BufferedWriter 用法
- Java中的 BufferedWriter 和 BufferedReader
- java Io 缓冲流 BufferedReader BufferedWriter 笔记
- Java基础知识IO流(BufferedWriter&BufferedReader)
- Java笔记 - IO流(BufferedWriter,BufferedReader)
- Java IO笔记(BufferedReader/BufferedWriter)
- 关于Hibernate的oracle主键id生成策略uuid、native和sequence
- java基础--静态
- 原型模式(Prototype Pattern)
- openCV——角点检测
- C 内存结构
- JAVA中常用IO流类:BufferedReader和BufferedWriter .
- StringUtils的一些控制空白字符的函数
- 青蛙诗集-序
- MFC创建圆角矩形边框
- 页面打印 css
- window server 2003安装后无法上网问题解决办法总结
- 学PLC编程的入门要注意
- IOS关于日期格式
- 浅谈ADO