Народ нуна помощь

пишу курсовую по Java. Задание - написать архиватор. Выбрал метод Run Length Encoding - RLE.
Суть в следующем: Суть методов данного подхода состоит в замене цепочек или серий повторяющихся байтов или их последовательностей на один кодирующий байт и счетчик числа их повторений.
Например:
44 44 44 11 11 11 11 11 01 33 FF 22 22 - исходная последовательность
03 44 04 11 00 03 01 03 FF 02 22 - сжатая последовательность
Первый байт указывает сколько раз нужно повторить следующий байт
Если первый байт равен 00, то затем идет счетчик, показывающий сколько за ним следует неповторяющихся данных.
В основном метод используется для картинок. Считываю данный с помощью метода Read. Ничего кроме бредовых символов не выводиться. Пробовал read(byte b []) тоже получается что то не совсем то.
Подскажите как можно реализовать побайтовой считывание картинки и запись ее в переменную для дальшейшего использования в архивации...?