У меня есть код для печати всех байтов файла:
String txtDocumentName = "data.txt";
File file = new File(txtDocumentName);
byte[] bytes = Files.readAllBytes(file.toPath());
System.out.println("bytes.length: " + bytes.length);
System.out.println("bytes:");
for (byte currentByte: bytes) {
System.out.println(currentByte);
}
, если у меня есть data.txt
содержимое документа:
abc
, то оно напечатает:
bytes.length: 3
bytes:
97
98
99
где длина байта равна 3, потому что у меня есть 3 символа. 97 означает ASCII-код символа «a», 98 означает ASCII-код символа «b» и т. Д. c.
также, если у меня будет data.txt
документ с содержанием на русском языке:
собака
, тогда он напечатает:
bytes.length: 12
bytes:
-47
-127
-48
-66
-48
-79
-48
-80
-48
-70
-48
-80
и теперь я не понял, что он на самом деле делает)
Не могли бы вы объяснить мне?
PS: собака означает собака на английском sh
Я буду счастлив, если вы тоже могу объяснить, как этот трюк работает с файлами изображений и видеофайлами