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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王红潮 中级黑马   /  2012-9-18 18:54  /  994 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

看到IO流中的PushbackReader 和PushbackInputStream这两个类的用法,书上的例子看了半天还是不理解,望高手看看
import java.io.FileReader;
import java.io.IOException;
import java.io.PushbackReader;
public class PushbackTest {

public static void main(String[] args) throws IOException {
try(
  PushbackReader pr = new PushbackReader(new FileReader("f:\\io\\a.txt"),64)) //这里应该是java7的自动关闭流动作
{
  char[] buf = new char[32];
  
  String lastContent = "";
  int hasRead = 0;
  while((hasRead = pr.read(buf)) != -1) //读取文件
{
   //将读取内容转换字符串
   String content = new String(buf,0,hasRead);
   int targetIndex = 0;
   
    if((targetIndex = (lastContent + content).indexOf("new PushbackReader")) !=-1 ) //如果包含“new pushbackReader”
   {
    pr.unread((lastContent + content).toCharArray());
    int len = targetIndex > 32 ? 32 : targetIndex;  
    pr.read(buf,0,len);
    System.out.println(new String(buf,0,len));  
    System.exit(0);
   }else
   {  //如果不包含
    System.out.println(lastContent);
    lastContent = content;
   
   }
   
  }
  
}
catch(IOException ioe){
  ioe.printStackTrace();
}

}
}


评分

参与人数 1技术分 +1 收起 理由
王德升 + 1 赞一个!

查看全部评分

0 个回复

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