我正在尝试读写PGM文件。使用ASCII PGM(幻数= P2)很简单,但我在处理Raw PGM文件时遇到了一些困惑(幻数P5)。
以下是我要阅读的PGM文件:A.pgm
在PGM Header之后,当我尝试使用以下Java代码读取Image数据时:
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中的图像数据被保存为字节?