2013-01-25 7 views
-1
내가 스트림은 다음과 같은 생성자를 사용하여 체인 될 수있는 방법이 알고

:생성자만을 사용하지 않고 Java 스트림을 체인으로 연결할 수 있습니까?

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

을하지만은 이렇게 또 다른 방법은 무엇입니까?

SetSink/SetProcess(); 

아마도?

감사합니다. 당신이 포장 뭔가없이 포장 스트림을 사용할 수 없기 때문에

+1

왜 생성자 사용을 피 하시겠습니까? –

+0

나는 그것이 가능한지 궁금하다. 하나의 이유는 내가 정말로 길어진 체인 인 을 작성하고 싱크 스트림을 끝에 으로 바꾸고 싶을뿐입니다. – Despairy

답변

0

는 대답은

가) 더 당신이하지와

b)는 당신이 싶지 않을 수 없다.

하나의 이유는 내가 정말로 긴 체인을 만들고 새로운 싱크 스트림을 끝으로 바꾸고 싶을 수 있다는 것입니다. 당신이 BufferedReader class에 대한 javadoc에 보면

이 경우 당신이

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

처럼 중간 변수를 사용할 수 있습니다, 그것을 구축 할 수있는 유일한 방법은 생성자에서 독자를 전달하는 것입니다.

생성자를 사용하지 않는 이유는 무엇입니까?

+0

그래, 내가 javadoc의에보고하고 내가 유일한 방법 먹으 렴 나타났습니다. 그러나 그렇게 할 수있는 더 높은 경로가 있는지 궁금했습니다. (리더 수퍼 클래스 등 사용) – Despairy