Witam...
Mam pewien plik który wczytuje bajt po bajcie. Wczytuję go do tablicy bajtowej:
int numberBytes = fis.available();
byte bytearray[] = new byte[numberBytes];
fis.read(bytearray);
fis jest srumieniem wejściowym utworzonym poprzez użycie datainputstream i fileinputstream.
gdy chce wypisać zawartość tablicy :
for (int i = 0; i < bytearray.lenght; i++) {
System.out.println(bytearray[i] + " " + i);
}
wypisuje mi tak:
51 0
52 1
46 2
55 3
51 4
57 5
49 6
55 7
45 8
48 9
46 10...itd.
czyli do każdej komórki tablicy bytearray zapisuje się jeden bajt ze strumienia...
Moje następne zadanie polega na scaleniu dwóch bajtów w jedną komórkę...Czyli w tym przypadku pierwsza komórka byłaby (00110011=51 i 00110100=52) :0011001100110100.Czyli zawierałaby 2bajty. W następnej komórce byłby wynik scalenia 2 i 3 bajtu w następnej scalenie 4 i 5 bajtu itd.
Wiem że bajt ma maxymalnie 8 bitów czyli musiałbym po odczytaniu tych bajtów zmienić je na inny typ...i tu moje pytanie...na jaki. Nie mam w ogóle koncepcji jak to sprawnie zrobić.
Czy może ktoś wie jak to ugryźć?
pozdr.