package File; import java.io.FileReader; import java.io.IOException; import java.io.PushbackReader; /*读取文件中某个字符串之前的文件*/ //PushbackInputStream,PushbackReader应用 public class PushbackTest { public static void main(String[] args) { try(PushbackReader pr = new PushbackReader(new FileReader( "./src/File/PushbackTest.java"),64)) { char[] buf = new char[32]; String lastContent = ""; int hasRead = 0; while((hasRead = pr.read(buf))>0) { String content = new String(buf,0,hasRead); int targetIndex = 0; if((targetIndex = (lastContent + content).indexOf("new PushbackReader"))>0) { pr.unread((lastContent+content).toCharArray()); if(targetIndex>32) { buf = new char[targetIndex]; } pr.read(buf,0,targetIndex); System.out.println(new String(buf,0,targetIndex)); System.exit(0); } else { System.out.println(lastContent); lastContent = content; } } }catch(IOException ioe) { ioe.printStackTrace(); } } }