打开二进制文件并打印该文件中的所有ASCII字符

时间:2014-03-22 08:51:48

标签: java file binary ascii

我正在努力解决这个问题。

  

打开二进制文件并从中打印所有ASCII字符   file,即所有字节,其值介于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();
}

我想知道我的方法是否正确。

1 个答案:

答案 0 :(得分:2)

尝试这种方式对我有用。

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(number or letter) than append , else if (check count)

虽然我们想要if(number or letter) than check is count==64 than append \n

你可以看到差异。

我希望你得到答案。

祝你好运