Originariamente inviato da rocklife
invece io dovrei ottenere

00 00 07 D9

quindi la codifica non e' little-endian?
E allora è Big-Endian, non Little-Endian! (ma sai cosa vogliono dire??).
I write() sarebbero da "rovesciare".

Originariamente inviato da rocklife
e per tradurre per esempio i byte, gli short e i long quali metodi devo utilizzare???
Se sono tutti in Big-Endian, puoi usare DataOutputStream, già fatto appositamente per scrivere tipi primitivi in un formato "indipendente" dalla piattaforma (ed è stato scelto appunto Big-Endian).

Altrimenti servono i soliti operatori di shift, and, eventualmente dei cast a byte ... dipende se devi assegnare ad una variabile byte, o passare a un write() ecc....

Originariamente inviato da rocklife
devo utilizzare per forza un ByteArrayOutputStream perche' non so' a priori la grandezza del file!!
Se scegli di usare DataOutputStream (e non conversioni fai-da-te), metti il ByteArrayOutputStream "sotto" il DataOutputStream e scrivi su quest'ultimo.