当我尝试读取二进制文件并打印其内容时,它只会在Console输出中产生一堆Null。
我尝试了很多在网上找到的方法和想法,但没有一个对我有用,我一直得到相同的“空”结果
public void decode(String fileName) throws IOException {
// TODO Auto-generated method stub
File file = new File(fileName);
DataInputStream inputFile = new DataInputStream(new FileInputStream(file));
while(inputFile.available()>0) {
message = inputFile.readUTF();
System.out.println(message);
}
inputFile.close();
}
该文件是一个二进制文件,其中包含'n'个字节。每个应该被读取并打印出来。在我的主要方法中,我调用此方法并将文件路径作为参数传递。任何形式的帮助将不胜感激!谢谢。
答案 0 :(得分:1)
我无法从您的问题中了解问题的根源。就像建议的@GhostCat一样,您应该创建一个最小的示例。
但是我相信这可以解决您的问题:
Path path = Paths.get("SomeBinaryFile.dat");
byte[] fileContents = Files.readAllBytes(path);
然后根据需要使用该数组。
由于字节包含8位,因此您可以通过fileContents [0]访问前8位,然后可以使用按位操作来控制程序的流。
此处有关readAllBytes(...)
的更多信息:https://docs.oracle.com/javase/7/docs/api/java/nio/file/Files.html#readAllBytes(java.nio.file.Path)
希望这会有所帮助。祝你好运。