2011-12-06 11 views
1

ストリームからファイルとURLの接続が可能なテキストとバイナリをストリームから読みたいと思います。どちらのストリームも同じフォーマットです。ASCIIテキストのヘッダーとそれに続く大きなバイナリデータブロックがあります。私はこれを行うためにDataInputStreamを使用しています。ファイルについては、私はURLのためにJavaの1つのストリームからテキストとバイナリを読み取る

DataInputStream dis = new DataInputStream(new FileInputStream(new File("test"))); 

を使用しています、私が使用している(UCはURLを指すように初期化されている):

DataInputStream dis = new DataInputStream(new BufferedInputStream(uc.getInputStream())); 

するDataInputStreamを設定した後、私は持つことに従います:

dis.readLine() 
dis.read(buf); 

これは動作しますが、私はのreadLineはdepecrated(それを使用して参照postsがあるにもかかわらず)であることに気づきました。私のテキストはASCIIなので、それを使い続けるのはいいですか?それは良い考えではない、私はBufferedReaderを使用するJDKの勧告に行く、テキストとバイナリの両方にアクセスする方法はありますか? BufferedReaderでテキストヘッダーを取得しようとしましたが、基になるストリームを使用しているときにバイナリデータが正しくない可能性があります。おそらくその一部がすでに消費されていた可能性があります。

+1

ASCIIテキストヘッダーの長さはどのくらいですか?彼らは固定長ですか?ヘッダーを「バイナリデータ」として読み、1つ以上の文字列に変換できますか? –

+0

ヘッダーは可変長で、バイナリデータの開始位置を知るために区切り文字を探す必要があります。しかし、あなたが言うように、私はテキストをバイナリとして(readByteを使って)読み込み、Stringを構築できると思います。ありがとう。 – Ravi

答えて

0

推奨されなかった理由は、バイトを文字に正しく変換できなかったためです。この例はASCIIに限られているので、使用上の問題はありません。

関連する問題