【发布时间】:2014-04-29 19:21:14
【问题描述】:
我正在努力解决这个问题。
打开一个二进制文件并打印其中的所有 ASCII 字符 文件,即值在 32 和 126 之间的所有字节。每 64 后打印一个新行 字符
我想出了这段代码--
public String asciiRead()
throws IOException
{
FileInputStream fis = null;
try {
fis = new FileInputStream(fileName);
int dataByte = 0;
int count = 0;
StringBuilder sb = new StringBuilder();
while (-1 != (dataByte = fis.read())) {
if (32 <= dataByte && dataByte <= 126) {
sb.append((char) dataByte);
} else if (0 == (count % 64)) {
sb.append("\n");
}
count++;
}
} finally {
if (null != fis) { fis.close(); }
}
return sb.toString();
}
我想知道我的方法是否正确。
【问题讨论】:
-
为什么不运行它并找出答案?
-
您检查的是
-
我运行这个......因为我没有太多使用 java 库的经验,所以请求审查这个。
-
@TeTeT - 我已经编辑过了..
-
为什么使用else if?仅当读取的字节不是 ASCII 字符时,才会执行此块。据我了解,您想在每 64 个字符后添加一个换行符。另外,您的意思是“读取 64 个字符后”还是“读取 64 个 ASCII 字符后”?