package com.zh.reader;
import java.io.FileReader;
import java.io.IOException;
/**
* 实现自己的带有缓冲区的reader类
* 主要利用FilaReader类的read方法一个字符一个字符的读取文件的内容,然后将其存入StringBuilder
* 利用StringBuilder的append方法向数组中添加字符
* 判断\r\n如果遇到\r\n就返回StringBuilder对象
* @author zhouzhihao
*
*/
public class MyBufferedWriter {
private FileReader fr;
public MyBufferedWriter(FileReader fr)
{
this.fr = fr;
}
public String myReadLine() throws IOException
{
StringBuilder sb = null;
int ch = 0;
sb = new StringBuilder();
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();
}
}
import java.io.FileReader;
import java.io.IOException;
/**
* 实现自己的带有缓冲区的reader类
* 主要利用FilaReader类的read方法一个字符一个字符的读取文件的内容,然后将其存入StringBuilder
* 利用StringBuilder的append方法向数组中添加字符
* 判断\r\n如果遇到\r\n就返回StringBuilder对象
* @author zhouzhihao
*
*/
public class MyBufferedWriter {
private FileReader fr;
public MyBufferedWriter(FileReader fr)
{
this.fr = fr;
}
public String myReadLine() throws IOException
{
StringBuilder sb = null;
int ch = 0;
sb = new StringBuilder();
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();
}
}
本文介绍了一个自定义的带缓冲区的读取器类MyBufferedWriter,该类通过继承FileReader并重写read方法来逐行读取文件内容。文章详细解释了如何使用StringBuilder来构建每一行的数据,并在遇到换行符时返回当前行。
3026

被折叠的 条评论
为什么被折叠?



