我知道有一种方法可以通过使用构造函数来链接流,如下所示:
BufferedReader bf=new BufferedReader(new InputStreamReader(io.openStream()));
但是,还有其他方法吗?
SetSink/SetProcess();
也许?
谢谢。
我知道有一种方法可以通过使用构造函数来链接流,如下所示:
BufferedReader bf=new BufferedReader(new InputStreamReader(io.openStream()));
但是,还有其他方法吗?
SetSink/SetProcess();
也许?
谢谢。
由于您不能在没有包装的情况下使用已包装的 Stream,因此答案是
a) 不,你不能和
b) 你不想。
一个原因可能是我已经构建了一个非常长的链,并且只想将接收器流更改为末端,而不是构建一个新的。
在这种情况下,您可以使用中间变量,例如
InputStream in = new FileInputStream(filename);
if (filename.endsWith(".gz"))
in = new GZIPInputStream(in);
in = new BufferedInputStream(in);
if (objectStream)
return new ObjectInputStream(in);
return DataInputStream(in);
如果您查看BufferedReader 类的 javadoc ,构建它的唯一方法是在构造函数中传递一个阅读器。
有什么理由不使用构造函数?