黑马程序员技术交流社区
标题:
自定义缓冲区应用
[打印本页]
作者:
_Water
时间:
2014-4-22 01:43
标题:
自定义缓冲区应用
import java.io.*;
class Test
{
public static void main(String[] args)throws IOException
{
FileReader fr =new FileReader("buf.txt");
MyBufferedReader mybufr =new MyBufferedReader(fr);
String line =null;
while((line=mybufr.myReadLine())!=null)
{
sop(line);
}
mybufr.myClose();
}
/**
通过缓冲区技术赋值一个。java文件
*/
public static void copyTextfile()
{
BufferedReader bufr =null;
BufferedWriter bufw =null;
try
{
bufr =new BufferedReader(new FileReader("Test.java"));
bufw =new BufferedWriter(new FileWriter("Testcopy2.java"));
String line =null;
while((line=bufr.readLine())!=null)
{
bufw.write(line);
bufw.newLine();
bufw.flush();
}
}
catch (IOException e)
{
throw new RuntimeException("读写失败");
}
finally
{
try
{
if (bufr!=null)
bufr.close();
}
catch (IOException e)
{
throw new RuntimeException ("读取失败");
}
try
{
if (bufw!=null)
{
bufw.close();
}
}
catch (IOException e)
{
throw new RuntimeException("写入失败");
}
}
}
public static void bufferedReader()throws IOException
{
FileReader fr =new FileReader("buf.txt");
BufferedReader bufr=new BufferedReader(fr);
String line =null;
while((line=bufr.readLine())!=null)
sop(line);
}
public static void sop(Object obj)
{
System.out.println(obj);
}
}
///////////////////////////////////////////////////////
/**
自定义缓冲区并模仿一个和readLIne一致的方法
*/
class MyBufferedReader
{
private FileReader r;
MyBufferedReader(FileReader r)
{
this.r =r;
}
public String myReadLine() throws IOException
{
//定义一个临时容器StringBuffer
StringBuffer sb =new StringBuffer();
int ch =0;
while((ch=r.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
{
r.close();
}
}
复制代码
作者:
许庭洲
时间:
2014-4-24 21:19
值得学习ing!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2