2013-01-25 36 views
-1

我知道有一种方法流可以通过构造函数如下被链接:Java流可以链接而不使用构造函数吗?

BufferedReader bf=new BufferedReader(new InputStreamReader(io.openStream())); 

但是,有另一种方式这样做?

SetSink/SetProcess(); 

也许?

谢谢。

+1

为什么你想避免使用构造函数? –

+0

我不知道,只是想知道是否有可能。 其中一个原因可能是我建立了一个非常长的连锁店, ,并且只是想将接收端流更改为端点 而不是构建新链。 – Despairy

回答

0

正如你不能使用包装的流没有东西包裹,答案是

一)不,你不能和

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); 
+0

正如我上面评论, 如果我建立了一个长文件X的链,并且我想为文件Y 相同,一旦我完成X,有没有办法使用已建成的链? 太差:( 感谢 – Despairy

+0

没有为链是所有在同一行或只有一个组合没有任何要求。见上面。 –

0

如果你看的javadoc为BufferedReader class,建立它的唯一方法是通过一个阅读器在构造函数中。

任何不使用构造函数的理由?

+0

是啊,我特地在javadoc中,我发现这就是唯一的 方法,但我想知道是否有更高的路径 (就像使用Reader超类或类似的) – Despairy

相关问题