Innanzitutto non puoi usare il costruttore di String che riceve un byte[]. Questo serve SOLO quando i byte rappresentano "caratteri" (e il charset va anche considerato!). E non è sicuramente il tuo caso.
Se hai un byte che vale es. 14 e vuoi che nella stringa ci sia la rappresentazione in esadecimale es. "e", allora devi anche "formattare" il valore in esadecimale.
Comunque fai un ciclo e "appendi" in un StringBuffer/StringBuilder le rappresentazioni hex dei byte, mettendo uno spazio tra i valori.
P.S. mi sta venendo il dubbio. Quando dici: val 0 8 e a 2 6
cosa intendi per es. quella "e" ? Si tratta di un byte che ha valore 14 (0x0e in esadecimale) oppure ha valore 101 che in ASCII è la lettera 'e' ??
Precisa meglio.