黑马程序员技术交流社区
标题:
IO—BufferedReader模拟演示
[打印本页]
作者:
bowen-xiao
时间:
2015-1-18 20:28
标题:
IO—BufferedReader模拟演示
/**
* Project Name:exam
* File Name:myBufferedReader.java
* Package Name:com.achievo.IO
* Date:2015-1-18下午8:15:49
* Copyright (c) 2015, 710081921@qq.com All Rights Reserved.
*
*/
package com.achievo.IO;
import java.io.FileReader;
/**
* 模拟BufferedReader中readLine()方法
* @version
* @since JDK 1.6
* @see
*/
public class myBufferedReader {
public FileReader fr;
myBufferedReader(FileReader fr){
this.fr=fr;
}
public String myReaderLine() throws Exception{
// 便于演示创建一个临时容器存放数据
StringBuilder stb = new StringBuilder();
int length = 0;
while((length = fr.read()) != -1){
if(length == '\r')
continue;
if(length == '\n')
return stb.toString();
else
stb.append((char)length);
}
return null;
}
public void myClose() throws Exception{
fr.close();
}
}
复制代码
测试代码:
public void copyFileByMyBuf() throws Exception {
File file = new File("c:\\Test1.java");
FileReader fr= new FileReader(file);
// 创建文件缓冲区,以提高文件的写出效率,只需要将提高对象传入即可
myBufferedReader bfr = new myBufferedReader(fr);
// BufferedReader bfr = new BufferedReader(fr);
String line = null;
// readLine()方法
// 通过下列字符之一即可认为某行已终止:换行 ('\n')、回车 ('\r') 或回车后直接跟着换行。
// 包含该行内容的字符串,不包含任何行终止符,
while((line = bfr.myReaderLine())!=null){
System.out.println(line);
}
// 缓冲区的关闭,实际上已经对文件流进行关闭
bfr.myClose();
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2