みんな!Java でのシリアライゼーションに関する古い記事を探しています。オブジェクトを ByteArray に変換したい。これまでのところ、私はこれを行ってきました:
public class test
{
public static void main(String[] args) throws IOException
{
// 00111111 00111111 00111111 11110000 - in bytes: 63, 63, 63, 240
int x = 1061109744;
byte[] bytes = null;
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ObjectOutput out = null;
try {
out = new ObjectOutputStream(bos);
out.writeObject(x);
bytes = bos.toByteArray();
}
finally
{
out.close();
bos.close();
}
System.out.println("Lenght: " + bytes.length);
for(int i=0; i < bytes.length; i++)
{
System.out.println(bytes[i]);
}
}
}
どうやらそれはうまく機能しますが、多くの「がらくた」をByteArray
. 私にとって本当に興味深い値は、「int x = 1061109744;」に対応する最後の 4 バイトです。
なぜこれが起こるのですか?
「ジャンク」値を回避することは可能ですか?
「署名された」値を超えることは可能ですか? (128 より大きいバイト値を書き込む必要があります)。