byte[] barr = "text".getBytes();
Niestety po drukowaniu z tablicy bajtowej każdego bajta widzę tylko same zera w konsoli.
Kodowanie w konsoli defaultowe: MacRoman.
- - - Połączono posty - - -
To chyba problem z kodowaniem. Zrobiłem teścik i jeśli zapiszę wszystkie bajty zwrócone przez String do strumienia wyjściowego np. pliku to nie ma problemu:
dos.write("zapis bajtow do strumienia wyjsciowego".getBytes());
Znaki w pliku są kodowane w UTF-8.
I w pliku mam zapisane wszystkie bajty bez żadnych problemów a w konsoli odczyt wszystkich bajtów powoduje wyświetlanie zer.
Więc na 99% to kwestia kodowania.
- - - Połączono posty - - -
To jednak kopiowanie tablicy robiło ten syf :/
W związku z tym pytanie gdzie jest problem, do fieldtxt kopiowane są same zera
byte t[] = "zapis bajtowy".getBytes(); byte fieldtxt[] = new byte[64]; // 64 bajtowe pole na tekst System.arraycopy(fieldtxt, 0, t, 0, t.length); for(byte bval: fieldtxt) System.out.println(bval);
I co ciekawe jak chce odczytać bajty ze zmiennej "t" to też mam same zera, a przecież zmienna t w żaden sposób nie jest modyfikowana przez System.arraycopy ( zakomentuje kopiowanie to "t" odczytuje ), tak więc zgłupiałem i raczej jest to jakiś głupi błąd, bo wcześniej nie miałem żadnych problemów z kopiowaniem tablic w JAVIE :/