2017-08-15 12 views
0

私は.ats拡張子を持つバイナリファイルを持っており、バイト配列に変換することになっています。ファイルがバイトストリームに変換された後、私はいくつかのバイトをスキップするはずです。ファイルはWINDOWS-1255でエンコードされています。.ats拡張子を持つバイナリファイルをバイト配列に変換する

バイトコードストリームに変換するためのスニペットが正しくありませんか?

Path path = Paths.get(fileName); byte[] buffer = new byte[SIZE]; buffer = Files.readAllBytes(path);

答えて

1

Files.readAllBytes(Path)が最も効率的な方法で全力を尽くしますようストリームをオープンする必要はありません。

任意のファイルのバイトがちょうどこのように行うことができ読取り:

byte[] bytes = Files.readAllBytes(Paths.get(fileName)); 

編集:

配列は、ストリームを取得するためにByteArrayInputStreamコンストラクタに渡すことができます。

new ByteArrayInputStream(bytes); 
+0

ありがとう。私は入力ストリーム部分を削除しました。ファイルはWINDOWS-1255エンコーディングを使用するため、バイトの解釈方法には影響しません。ヘッダーの最初の2バイトにヘッダーの長さに関する情報が含まれていることを示す文書があります。ヘッダーの長さを取得するために、最初の2バイトのバイト配列を読み取る必要があることを意味しますか?私は文書に基づいてファイルからデータを抽出しようとしています。私の質問は原始的かもしれませんが、正しいデータを抽出することができません – user3065525

+0

はい、read(byte [] b、int off、int len)メソッドを使用してByteArrayInputStreamのバイトを読み込むことができます。 – glf4k

関連する問題