1 回答

TA贡献1820条经验 获得超10个赞
我确实在上面问了一个问题,但我假设您想要执行 HexDump,请考虑以下程序:
import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.InputStream;
public class HexDump {
public static void main(String[] args) {
try {
InputStream isr = new DataInputStream(new FileInputStream("C:\\Temp\\some_file.dat"));
int bytesPerLine = 16;
int byteCount = 0;
int data;
while ((data = isr.read()) != -1) {
if (byteCount == 0)
System.out.println();
else if (byteCount % bytesPerLine == 0)
System.out.printf("\n", byteCount);
else
System.out.print(" ");
System.out.printf("%02x", data & 0xff);
byteCount += 1;
}
System.out.println();
} catch (Exception e) {
System.out.println("Exception: " + e);
}
}
}
它将获取样本文件并将各个字节转储为十六进制值(每行 16 个字节)。
正如斯蒂芬所提到的,对于二进制文件,实际上并没有任何类型的编码方案(您建议的类型 - 例如 ANSI 等)。这种类型的编码方案适用于文本文件,并告诉您它是 ANSI、UTF-8 还是 UNICODE 等,并告诉您如何阅读它。话虽如此,二进制文件确实隐含着“编码方案”。在二进制文件的情况下,正如斯蒂芬提到的,“编码方案”由文件的写入内容决定。这实际上也适用于文本文件,程序将确定它是否将文本文件写入为 ANSI、UTF-8 或任何编码方案。对于二进制文件,“编码方案”可能是 JPEG、PNG、GIF、MP3 或 MP4、ZIP 或 TAR 或数千种其他可能性中的任何一种。同样,这是由编写文件的程序决定的(例如
我希望这可以帮助您找到答案。
添加回答
举报