0

私はしばらくの間これに苦労してきました、そして私はもともとプログラマーではないので、助けていただければ幸いです。状況は次のとおりです。

1.ファイルシステムに画像ファイルがあり、byteArrayOutputStreamとByteArrayに変換されています(現在、どちらを選択するかは重要ではないため、これらのいずれも入力データに対して正常に機能します)

2.次のように、画像をHEXコードと0xプレフィックス付きの文字列として表す必要があります。

画像->文字列=' 0xFFD8FFE000104A46494600010200000100010000FFDB0 '

助けようとする人に事前に感謝します!サンプルコードやライブラリは大歓迎です!

4

4 に答える 4

1

Apache commons-codec の使用:

String s = "0x" + Hex.encodeHexString(bytes);
于 2012-07-06T10:50:57.927 に答える
0

これは私のために働いたコードです:

public static String getHexString(byte[] b) throws Exception {
  String result = "";
  for (int i=0; i < b.length; i++) {
    result +=
          Integer.toString( ( b[i] & 0xff ) + 0x100, 16).substring( 1 );
  }
  return result;
}

とにかく助けてくれてありがとう!

于 2012-07-09T13:13:14.793 に答える
0

画像を 16 進数に変換する準備が整ったライブラリのようなものはありません。この 1 つのトピックを確認する必要があります。

Java: ファイルを 16 進数に変換しますか? :)

そして、16進の準備ができている場合は、@JB Nizetの別の回答のメソッドを使用して文字列に変換するか、このライブラリを試すことができます:

String hex = HexBin.encode(bytes[]); // add "0x" of course.
于 2012-07-06T10:58:17.940 に答える
0

HexString を使用して Image を文字列として保存しないでください。

データがたくさん。

保存には、16 進エンコーディングではなく、base-64 エンコーディングを使用する必要があります。

Base64Apacheのutilを使用することをお勧めしますcommons-codec

于 2013-11-15T05:38:14.837 に答える