Задачу решила, но есть вопросы по байтам.....
Программа считывает из файла по одному байту.
ArrayList <Integer> bytes = new ArrayList<>();
while (inputStream.available() > 0) {
int data = inputStream.read();
bytes.add(data);.........
data == одному байту, правильно?? Но один знак(одна буква или запятая - это же не один байт!?)
Если запятая равна 44 в ASCII, то каким образом она записывается в список bytes и каким образом оттуда читается? Если она запишется разными байтами, то как потом определить эти 44?
Lara
35 уровень
БАЙТЫ
Обсуждается
Комментарии (2)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Wladyslaw Java Developer Master
24 декабря 2020, 16:45
Некоторые символы кодируются одним байтом, некоторые двумя, некоторые тремя, а бывает и четырьмя.
Зависит от кодировки.
Есть кодировки с переменной длинной, есть с постоянной.
Если говорить об UTF-8, в котором скорее всего и закодирован твой файл, то английский алфавит и всякие запятые кодируются одним байтом.
Десятичное "44" вполне себе влазит в джавовский 8-битный байт.
Почитать, например можно тут
The first 128 characters (US-ASCII) need one byte.
+2
Lara
24 декабря 2020, 16:55
спасибо!
0