Моим первым ответом был бы сдвиг битов, но после второй мысли я думаю, что использование выходных потоков может быть лучше и проще для понимания. Я обычно избегаю кастинга, но если вы не собираетесь использовать общее решение, я думаю, это будет хорошо. :)
Использование потоков, общее решение:
public byte[] intToByteArray(final int i) throws java.io.IOException {
java.io.ByteArrayOutputStream b = new java.io.ByteArrayOutputStream();
java.io.DataOutputStream d = new java.io.DataOutputStream(b);
d.writeInt(i);
d.flush();
return b.toByteArray();
}
И чтобы изменить это:
public int byteArrayToInt(final byte[] b) throws IOException {
java.io.ByteArrayInputStream ba = new java.io.ByteArrayInputStream(b);
java.io.DataInputStream d = new java.io.DataInputStream(ba);
return d.readInt();
}