2012-04-12 16 views
0

PipedInputStreamはどのようにしてPipedOutputStreamから読み取られますか? toString()を使用していますか、またはprivateメンバー変数にアクセスするための隠された魔法がありますか?PipedInputStreamはどのようにOutputStreamから読み込みますか?

+1

出力ストリームから何が読み込まれると思いますか?あなたの質問を明確にしてください。 –

+0

'protected'とデフォルトアクセス(" package-private ")変数は同じパッケージ内でアクセスできます。これは' PipedInputStream'と '** Piped ** OutputStream'の間で起こっていることです。 –

+0

それはありません。 'PipedOutputStream'から読み込みます。 – EJP

答えて

2

PipedOutputStream.write(int byte)は単にprotectedメソッドPipedInputStream.receive(int byte)を呼び出すだけで、それ自身のバッファーを単純に埋めます。一括読み取り/書き込みメソッドの場合と同じです。

PipedInputStreamで内部バッファがprivateが、protectedので、protected 方法と同じ方法でアクセスすることはできませんのでご注意ください。しかしPipedOutputStreamは公平にプレイし、直接アクセスしません。

protectedのメソッドとフィールドは、クラスを導出するだけでなく、Wikipediaに示すように完全なパッケージでアクセスできるため、もちろん機能します。

"toString"のような "魔法"の必要はありません。

+0

そのような場合はわかりませんでした。説明ありがとう! – dromodel

0

通常、OutputStreamから読み込んだバックグラウンドスレッドがあり、読み込まれた内容が終了するまでPipedInputStreamに書き込みます。

関連する問題