2009-04-22 14 views
6

最初のバイトをチェックしてフォーマットをチェックし、それをリセットするためにmarkSupported機能を使用するつもりです。javaでTCPベースの通信に使用するストリームを教えてください。 datainputstreamのようなストリームのほとんどは、この機能を提供していません。マークを使用してリセットするためのポインタを私に教えてください。inputstream javaのmarkSupported機能の使い方

答えて

8

BufferedInputStreamは他のストリームの周りで使用できます。マーキング後にバッファサイズを超えて読み取ろうとしない限り、マーク/リセットをサポートすることが保証されています。

+2

+1ソリューションが直感的に名前が付けられ、文書化されている問題を解決するには、なぜGoogle検索と接線関連の質問が必要なのですか?ああ、人間の心の謎.... –

8

PushbackInputStreamをご覧ください。これは、あなたが望むように設計されているようです。

これは既存の入力ストリームをラップし、バイトを読み取って戻すことができます。 Javadocから:

PushbackInputStreamは、別の入力ストリーム、つまり1バイトを "プッシュバック"または "未読"する機能を追加します。これは、コードの断片が、特定のバイト値で区切られた不定数のデータバイトを読み込むことが便利な状況で便利です。終端バイトを読み取った後、コードフラグメントはそれを「未読」にすることができるので、入力ストリームの次の読み取り操作では、戻されたバイトが再度読み取られます。例えば、識別子を構成する文字を表すバイトは、オペレータ文字を表すバイトで終わることがあります。ジョブが識別子だけを読み取る方法は、オペレータが見るまで読み取ることができ、次にオペレータを押し戻して再度読み取ることができます。

+0

このクラスに気付かなかった!私は学ぶのが好き! – dfa

関連する問題