2012-04-04 4 views
2

リトルエンディアン形式のSeekableByteChannelを使って、符号なし整数を読み書きする必要があります。これはばかげているように見えるかもしれませんが、私はJDKで何かを見つけることができません。私は何かを見逃してしまったのでしょうか、それとも自分でこれを巻き上げることを期待していますかこれは問題ありませんが、私は今日ホイールを再発明する気がしません。 :-)リトルエンディアン形式のSeekableByteChannelで整数を読み書きする方法は?

+0

のようなあなたがまったくのコードをお持ちですか? JDKにSeekableByteChannelというものは何も表示されていません。これは、nioパッケージの中で最も近いことは、WritableByteChannelです。 – Jon

+0

@Jon JDK 7に追加されました –

+0

これはJSE 7のjava.nio.channels.SeekableByteChannelです。 –

答えて

2

ByteBufferの作業のように聞こえます。

やや

public static void main(String[] args) { 
    byte[] payload = toArray(-1991249); 
    int number = fromArray(payload); 
    System.out.println(number); 
} 

public static int fromArray(byte[] payload){ 
    ByteBuffer buffer = ByteBuffer.wrap(payload); 
    buffer.order(ByteOrder.LITTLE_ENDIAN); 
    return buffer.getInt(); 
} 

public static byte[] toArray(int value){ 
    ByteBuffer buffer = ByteBuffer.allocate(4); 
    buffer.order(ByteOrder.LITTLE_ENDIAN); 
    buffer.putInt(value); 
    return buffer.array(); 
} 
+0

ああ、それは欠けているリンクです - ありがとう。もちろん、ByteOrder.LITTLE_ENDIANが必要です。 –

+1

さて、おそらく、私が快適に、符号なし整数を読み書きできるように、デコレータを書く必要があります。 –

関連する問題