我正在努力解决这个问题。
open a binary file and prints all ASCII characters from that file, that is, all bytes with values between 32 and 126. Print a new line after every 64 characters
我想出了这段代码--
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();
}
我想知道我的方法是否正确。
最佳答案
尝试这种方法,它对我有用。
while ((dataByte = fis.read())!=-1) {
if (32 <= dataByte && dataByte <= 126 )
{
count++;
sb.append((char) dataByte);
if (0 == (count % 64)) {
sb.append("\n");count=0;
}
}
}
代码中发生了什么if(数字或字母)而不是append,else if(检查计数)
虽然我们想要if(数字或字母)而不是检查count==64而不是附加\n
。
你可以看到差异。
希望你能得到答案。
祝你好运
关于java - 打开一个二进制文件并打印该文件中的所有 ASCII 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22575464/