С вашим подходом не получится символ из потока считать произвольно, нужно будет пройтись по потоку обратно (если есть такая возможность), чтобы найти, к какой таблице он относится. А если часть данных повреждена — внезапно весь текст становится нечитаемым, придётся перебирать все таблицы, проверяя его на осмысленность. Вы именно алгоритм сжатия придумали, и у него есть свои минусы.
С вашим подходом не получится символ из потока считать произвольно, нужно будет пройтись по потоку обратно (если есть такая возможность), чтобы найти, к какой таблице он относится. А если часть данных повреждена — внезапно весь текст становится нечитаемым, придётся перебирать все таблицы, проверяя его на осмысленность. Вы именно алгоритм сжатия придумали, и у него есть свои минусы.