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

标签 java file binary ascii

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

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/

相关文章:

c# - 确定文件在哪个物理硬盘上?

c - 用C编写系统调用,如何将整数值打印到文件

android - Cordova - 将文件保存到存储

c++ - 将显式双数组定义编译为 DLL 中的二进制资源 - 有更好的方法吗?

c++ - 通过 C++ 与 erlang 服务器通信(发送二进制文件)

java - 这真的是资源泄漏吗

java - 将 Java txt 文件保存到文件夹

c++ - 一点一点地写一个文件

java - 为什么我的按钮占据了整个 JFrame?

java - 向使用 java 图形的 contentPane 添加按钮