PipedInputStream类有四个字段分别为:
protected byte[] buffer 放置传入数据的循环缓冲区。
protected int in 循环缓冲区中的位置索引,当从连接的传送输出流中接收到下一个数据字节时,会将其存储到该缓冲区。
protected int out 循环缓冲区中的位置索引,此传送输入流将从该缓冲区读取下一个数据字节。
protected static int PIPE_SIZE 管道的循环输入缓冲区的大小。
我想使用这几个字段,但在类里点不出来,所以希望那位兄弟指点下,是不是跟他的protected有关呢,还是怎么回事呢
protected byte[] buffer 放置传入数据的循环缓冲区。
protected int in 循环缓冲区中的位置索引,当从连接的传送输出流中接收到下一个数据字节时,会将其存储到该缓冲区。
protected int out 循环缓冲区中的位置索引,此传送输入流将从该缓冲区读取下一个数据字节。
protected static int PIPE_SIZE 管道的循环输入缓冲区的大小。
我想使用这几个字段,但在类里点不出来,所以希望那位兄弟指点下,是不是跟他的protected有关呢,还是怎么回事呢
找下public的,那才是可以用的(使用此类的时候,而不是继承它)。其实XXInputStream的使用都差不多的。
下面给个从《java programming language 4th》中关于piped Stream的例子,在书的20.5小节,希望有帮助。class TextGenerator extends Thread {
private Writer out; public TextGenerator(Writer out) {
this.out = out;
} public void run() {
try {
try {
for (char c = 'a'; c <= 'z'; c++)
out.write(c);
} finally {
out.close();
}
} catch (IOException e) {
getUncaughtExceptionHandler().
uncaughtException(this, e);
}
}
}class Pipe {
public static void main(String[] args)
throws IOException
{
PipedWriter out = new PipedWriter();
PipedReader in = new PipedReader(out);
TextGenerator data = new TextGenerator(out);
data.start();
int ch;
while ((ch = in.read()) != -1)
System.out.print((char) ch);
System.out.println();
}
}