Écrire un entier dans un tableau d'octets

Pas de problème si on veut écrire un byte dans un tableau d'octets, mais comment faire si c'est un short, un int ou un long? Voici comment faire pour un int (4 octets). La technique est similaire pour les autres types entiers.

int n = 12345;

// la taille d'un int est de 4 octets
byte tab[] = new byte[4];

ByteBuffer buff = ByteBuffer.wrap(tab);

// on retrouve aussi les méthodes putShort et putLong
buff.putInt(n);