ストリームからファイルと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でテキストヘッダーを取得しようとしましたが、基になるストリームを使用しているときにバイナリデータが正しくない可能性があります。おそらくその一部がすでに消費されていた可能性があります。
ASCIIテキストヘッダーの長さはどのくらいですか?彼らは固定長ですか?ヘッダーを「バイナリデータ」として読み、1つ以上の文字列に変換できますか? –
ヘッダーは可変長で、バイナリデータの開始位置を知るために区切り文字を探す必要があります。しかし、あなたが言うように、私はテキストをバイナリとして(readByteを使って)読み込み、Stringを構築できると思います。ありがとう。 – Ravi