java pgm_用Java读取pgm文件
很可能是因为来自DataInputStream的弃用方法readLine()。正如其注释中所述
此方法无法将字节正确转换为字符。从JDK 1.1开始,读取文本行的首选方法是通过BufferedReader.readLine()方法。使用DataInputStream类读取行的程序可以通过替换表单的代码转换为使用BufferedReader类:
DataInputStream d = new DataInputStream(in);
有:
BufferedReader d
= new BufferedReader(new InputStreamReader(in));
当我根据这个建议改变你的程序时,它对我有用(我做了一些其他的改动:
(更新为处理PGM的P2和P5口味)
public static void main(String args[]) throws Exception {
try {
InputStream f = ClassLoader.getSystemClassLoader().getResourceAsStream("lena.pgm");
BufferedReader d = new BufferedReader(new InputStreamReader(f));
String magic = d.readLine(); // first line contains P2 or P5
String line = d.readLine(); // second line contains height and width
while (line.startsWith("#")) {
line = d.readLine();
}
Scanner s = new Scanner(line);
int width = s.nextInt();
int height = s.nextInt();
line = d.readLine();// third line contains maxVal
s = new Scanner(line);
int maxVal = s.nextInt();
byte[][] im = new byte[height][width];
int count = 0;
int b = 0;
try {
while (count < height*width) {
b = d.read() ;
if ( b < 0 )
break ;
if (b == '\n') { // do nothing if new line encountered
}
// else if (b == '#') {
// d.readLine();
// }
// else if (Character.isWhitespace(b)) { // do nothing if whitespace encountered
// }
else {
if ( "P5".equals(magic) ) { // Binary format
im[count / width][count % width] = (byte)((b >> 8) & 0xFF);
count++;
im[count / width][count % width] = (byte)(b & 0xFF);
count++;
}
else { // ASCII format
im[count / width][count % width] = (byte)b ;
count++;
}
}
}
} catch (EOFException eof) {
eof.printStackTrace(System.out) ;
}
System.out.println("Height=" + height);
System.out.println("Width=" + height);
System.out.println("Required elements=" + (height * width));
System.out.println("Obtained elements=" + count);
}
catch(Throwable t) {
t.printStackTrace(System.err) ;
return ;
}
}
java pgm_用Java读取pgm文件相关推荐
- Java的marven工程读取resources文件,并打可执行的jar
Java的maven工程读取resources文件,并打可执行的jar 文章目录 Java的maven工程读取resources文件,并打可执行的jar 如何读取resources文件 maven如何 ...
- JAVA实现环形缓冲多线程读取远程文件
2019独角兽企业重金招聘Python工程师标准>>> 如果用HttpURLConnection类的方法打开连接,然后用InputStream类获得输入流,再用BufferedInp ...
- java wav 波形_java读取wav文件(波形文件)并绘制波形图的方法
本文实例讲述了java读取wav文件(波形文件)并绘制波形图的方法.分享给大家供大家参考.具体如下: 因为最近有不少网友询问我波形文件读写方面的问题,出于让大家更方便以及让代码能够得到更好的改进,我将 ...
- java xml 反射_Java 读取XML文件以及Java 的反射机制实现
Java 读取XML文件以及Java 的反射机制实现 代码部分 import java.io.File; import javax.xml.parsers.DocumentBuilder; impor ...
- java classpath 遍历_Java 读取JAR文件信息
Java 读取JAR文件信息 为什么想到读取JAR文件的信息 查看spring 资源处理,查找多个资源classpath*,会去寻找jar包中的内容,因此会出现读取jar包中的文件或者读取文件夹中的文 ...
- Java通过javacsv实现读取csv文件数据
目录 1.添加依赖 2.测试的csv文件 3.实际调用代码 4.返回的数据格式 1.添加依赖 <!--csv文件操作--> <dependency><groupId> ...
- Java使用GeoTools轻松读取shapefile文件内容
日常GIS开发中难免会将一些shapefile文件数据读取存入数据库中,很多人第一想到的就是使用GeoTools操作和显示地图的开源Java 代码库. 生活捉弄人,因为项目需要对于从来没有做过GIS相 ...
- java read出错_java读取txt文件时,错误的把txt内容读取了两遍
package标准化模拟考试;importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;importjava.io.*;importjav ...
- java获取音乐_Java读取MP3文件的信息(歌曲名,歌手...)
还记得之前写一款Android播放软件时,为了让APP获得MP3音乐文件的相关信息,上网找了很多Java库.搞的APP满身赘肉.后来我研究了一下MP3文件的结构后发现,获取MP3文件信息根本不需要什么 ...
- java读取 png_如何让java的ImageBuffer正确读取PNG文件?
出于某种原因,使用ImageBuffer和ImageIO打开一些PNG文件不起作用.这里有一些我正在使用的代码可以很好地调整大小/裁剪JPG: BufferedImage image = ImageI ...
最新文章
- 忘记Rxjava吧,你应该试试Kotlin的协程
- sangerbox平台使用(六)富集分析
- 【机器学习基础】数学推导+纯Python实现机器学习算法1:线性回归
- Boost::context模块callcc的斐波那契测试程序
- python实现redis分布式锁
- java工程加包_Java工程中添加依赖jar包不起作用问题总结
- Java可靠性测试fit_Java ParagraphVectors.fit方法代码示例
- 01-二维数组中的查找
- oracle创建表(并且实现ID自增)
- SQLserver nText和varchar 不兼容
- 「leetcode」617. 合并二叉树:【三种递归】【一种迭代】详解
- Java httpClient 发送http请求
- java基础入门(完整详细版)
- Linux中scp报 not a regular file错误解决方案
- Java混元功法_陈式太极心意混元 入门功法---太极内功 1
- jks文件转换成ctr,key文件
- 服务器网站崩溃怎么解决
- np.power与np.linalg.inv
- 团队-中国象棋游戏-设计文档
- android线刷软件,android线刷一般用什么软件?哪一个好用一些?
热门文章
- 微分中的dx和delta x
- 计算机仿真撤稿,LOL云顶之弈11.5天神裁决天使阵容攻略 新版本裁决天使运营思路...
- bigdecimal负数变正数_Java中BigDecimal的8种舍入模式
- 【Win7开启DMA】
- 洛谷 P4200 千山鸟飞绝平衡树
- 波司登 × 阿里云 × 奇点云:教科书式的数智化转型实践
- 申请license激活F5-LTM步骤
- isis学不到looback口的路由_光纤猫接D-Link无线路由器,怎么设置上网
- 在启动时在Raspberry Pi上运行程序的五种方法
- python 英语词汇_【我爱背单词】用Python提炼3000英语新闻高频词汇