A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王海生 中级黑马   /  2014-9-17 14:14  /  1364 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class MyReadLine {
/**
* 明白了BufferedReader类中特有的readLine方法的原理后,
* 可以自定义一个类中包含一个功能和readLine一致的方法。来模拟一下Bufferedread
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
// TODO 自动生成的方法存根
//定义要读取的文件
FileReader fr = new FileReader("D:/CopyBuf.txt");
//关联要读取的文件
MyBufferedRead myb = new MyBufferedRead(fr);
//初始化用于存储字符的String变量
String line = null;
//循环读取数据
while((line = myb.myRead())!=null){
System.out.println(line);
}
myb.myClose();
}
}
class MyBufferedRead{
//可以一次读一行的方法
private FileReader fr;
MyBufferedRead(FileReader fr){
this.fr = fr;
}
public String myRead() throws IOException{
//定义一个容器,原BufferedReader封装的是字符数组。
//为了演示方便,在这里就定义一个StringBuilder容器。因为最终还是要将数据变成字符串。
StringBuilder sb = new StringBuilder();
int ch = 0;
while((ch = fr.read())!=-1){
if(ch=='\r')
continue;
if (ch=='\n')
return sb.toString();
else
sb.append((char)ch);
}
if(sb.length()!=0)
return sb.toString();
return null;
}
public void myClose() throws IOException{
fr.close();
}
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马