读取二进制文件仅产生Null值

时间:2019-09-17 03:49:28

标签: java binaryfiles

当我尝试读取二进制文件并打印其内容时,它只会在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'个字节。每个应该被读取并打印出来。在我的主要方法中,我调用此方法并将文件路径作为参数传递。任何形式的帮助将不胜感激!谢谢。

1 个答案:

答案 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)

希望这会有所帮助。祝你好运。

相关问题