import java.io.IOException;
import java.io.PipedReader;
import java.io.PipedWriter;
import java.io.PrintWriter;
import java.util.Scanner;
public class Pipe {
//输入管道
private Scanner pipereader;
//输出管道
private PrintWriter pipewriter;
public Pipe(){
PipedWriter pw = new PipedWriter();
PipedReader pr = new PipedReader();
try{
pw.connect(pr);
} catch (IOException e){
e.getMessage();
}
pipewriter = new PrintWriter(pw);
pipereader = new Scanner(pr);
}
//读入一行数据到管道
//@return 读入的数据
public String readerLine() throws IOException{
if (pipereader.hasNextLine()) {
return pipereader.nextLine();
}
return null;
}
//从管道输出一行数据
public void writerLine(String strline) throws IOException{
pipewriter.println(strline);
}
//将读管道关闭,调用该方法后,不能再从管道中读数据
//如不能关闭则抛出异
public void closeReader() throws IOException{
pipereader.close();
}
//先刷新数据,在将写管道关闭,调用该方法后,不能向管道中写数据
//如不能关闭则抛出异常
public void closeWriter() throws IOException{
pipewriter.flush();
pipewriter.close();
}
}
上面是pipe管道,代码本身能通过编译,能实现对过滤器的连接。但是,一旦数据文本文件中超过165个单词,就会发生管道阻塞,请问哪里出了问题?