Чтение и запись сырых файлов PGM на Java
Я пытаюсь читать и писать файлы PGM. Работать с ASCII PGM (магическое число = P2) легко, но у меня возникает путаница при работе с необработанными файлами PGM (магическое число P5).
Вот файл PGM, который я пытаюсь прочитать: A.pgm
После Заголовка PGM, когда я пытаюсь прочитать данные Изображения, используя следующий код Java:
FileInputStream inRaw = null;
try {
inRaw = new FileInputStream("A.pgm");
} catch (FileNotFoundException e) {
e.printStackTrace();
}
Scanner scan_Raw = new Scanner(inRaw);
//lines to read the PGM Header
System.out.println(scan_Raw.nextLine());
System.out.println(scan_Raw.nextLine());
System.out.println(scan_Raw.nextLine());
System.out.println(scan_Raw.nextLine());
//Code to read the Image Data
while(scan_Raw.hasNext()){
System.out.println(scan_Raw.next());
Тогда это дает следующий вывод:
�����������������������������������������������������������������������������������������#F����������������� ����������������} ����������������; > e���������������� #��������������� 7� ��������������v y�M ��������������4
`�������������
������������� A��� ������������p ����U ������������n�����
��������������������������������������������������������������������������������������
Что это за выход? Кроме того, почему я не могу прочитать время с помощью scan_Raw.nextByte();
(исключение несоответствия ввода), потому что, как я понимаю, данные изображения в P5 сохраняются как байты?