Originariamente inviato da andbin
E quale è??? Devi saperlo! Esempio: un file .class di Java è un file binario, inizia con 4 byte di "marcatura" fissi, poi 2 byte che formato un unsigned-16bit per la versione "minor", poi 2 byte che formato un unsigned-16bit per la versione "major", ecc...
Quale è il formato del tuo file, in generale?

codice:
int val = 2009;

fos.write(val);
fos.write(val >>> 8);
fos.write(val >>> 16);
fos.write(val >>> 24);
Se si volesse scrivere un int in Little-Endian su un file.

Se devi trattare byte, StringBuffer è del tutto inutile.
Se devi scrivere prima un qualcosa che puoi calcolare solo dopo hai 2 strade: usi RandomAccessFile, così puoi andare avanti/indietro come ti pare, oppure "bufferizzi" tutto in memoria ma come ripeto, non con StringBuffer. Sai a priori la quantità di byte? Istanzia un array byte[]. Non la sai o vuoi scrivere con write() o altro? Usa ByteArrayOutputStream (alla fine ottieni un byte[]).

Allora la codifica la conosco.... so' come e' formato il file e so' per esempio la data 2009 deve essere tradotto in 4 byte e cosi via.... Utilizzando il codice che mi hai postato ottengo in formato esadecimale:

D9 07 00 00

invece io dovrei ottenere

00 00 07 D9

quindi la codifica non e' little-endian?e per tradurre per esempio i byte, gli short e i long quali metodi devo utilizzare???
Quindi lo string buffer e' inutile ok.... devo utilizzare per forza un ByteArrayOutputStream perche' non so' a priori la grandezza del file!!