質問

私はいくつかのウェブサイト上で共有するとき、私は六角掘りの多くを通じて正しい情報を見つけ出してきましたが、今、私は一種のこだわっている、それが正常に動作するために取得するために、JPEGファイルにヘッダー情報を追加する必要がありますファイルにそれを取得しようとしています。ファイルにそれが行く必要がどこ私が知っている、と私はそれは私の問題は、RandomAccessFileのは、単にファイル内の既存データを上書きしたFileOutputStreamは、最後にデータを追加することで、あるどのくらい知っています。私は3番目のバイトから始まるデータを挿入する、のいずれかの必要はありません。

私のコード例:

File fileToChange = new File("someimage.jpg");

byte[] i = new byte[2];
i[0] = (byte)Integer.decode("0xcc");
i[1] = (byte)Integer.decode("0xcc");

RandomAccessFile f = 
    new RandomAccessFile(new File("videothing.jpg"), "rw");
long aPositionWhereIWantToGo = 2;
f.seek(aPositionWhereIWantToGo); // this basically reads n bytes in the file
f.write((byte[])i);
f.close();
それは上書きされ、挿入されませんので、これは動作しませんので、

は、私は、ファイルにデータを挿入する方法を見つけることができません。

役に立ちましたか?

解決

あなたはタンデムでOutputSteamとInputStreamを使用する必要があります。 InputStreamを使用してファイルを読み込み、元のファイルから最初の2つのバイトを書き込みます。入力ストリームの残りの部分を読んで、OutputSteamに書き込み、その後、あなたの進コンテンツを挿入します。

方法読み取りに使用する

public int read(byte b[], int off, int len)

メソッド書き込みに使用されるます:

public void write(byte b[], int off, int len) 

他のヒント

任意の場所でそれにデータを挿入するファイルのコピーを書き換えます。それともあなたは、例えば、HTTPレスポンスを送信しながら、オンザフライでそれをしたい場合は、データを注入OutputStreamを書きます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top