Возможно глупый вопрос, но хочется разобраться в некоторых фундоментальных вещах.
Допустим имеем код:
public class MyTEST {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
try {
FileInputStream fileInputStream = new FileInputStream(scanner.nextLine());
while (fileInputStream.available()>0){
int data = fileInputStream.read();
System.out.print(data+" ");
System.out.println((char)data);
}
fileInputStream.close();
scanner.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
Считываем побайтово файл и выводим на консоль в виде 10-чного представления байта и соответствующего ему символьного.
Просьба знающих пояснить. Допустим в файле имеется английская "A" и все. Получим в консоле 65 A
что логично. Откроем например https://unicode-table.com/ru/#0410 найдем английскую A и видим, что в десятичном представлении её значение равно 65.
Поменяем в исходном файле английскую A на русскую A и результат будет следующий:
208 Ð
144
Значение буквы А русского алфавита - 1040 в десятичном формате. Понятно в представление байта это не влезет. И я понимаю, что внутри идет разбивка на несколько байтов, но хотелось бы узнать подробнее. Может кто подскажет или поделиться нужной ссылкой?