在java中读取32位二进制数

在java中读取32位二进制数,java,Java,我正在尝试读取五个32位二进制数并将其打印为int。以下是我的代码: FileInputStream fin = new FileInputStream(file); int count = 5; for (int i = 0; i < count; i++) { byte[] input = file.getBytes(); String bin=Integer.toBinaryString(0xFF &a

我正在尝试读取五个32位二进制数并将其打印为int。以下是我的代码:

FileInputStream fin = new FileInputStream(file);
        int count = 5;

        for (int i = 0; i < count; i++) {
            byte[] input = file.getBytes();
            String bin=Integer.toBinaryString(0xFF & input[i] | 0x100).substring(1);
            System.out.println(bin);

我做错了什么?谢谢

您实际上不是在读取文件,而是在打印文件名前五个字符的二进制表示形式。使用fin.read()从文件中读取字节

您也可以使用DataInputStream直接读取32位大端整数,而不是将它们作为4个单独的字节读取。

如果您需要读取5个大端32位整数,那么我建议您使用
DataInputStream
,例如

final int count = 5;

try (DataInputStream dis = new DataInputStream(new FileInputStream(file))) {
    for (int i = 0; i < count; i++) {
        int value = dis.readInt();
        System.out.println(Integer.toBinaryString(value));
    }
}
final int count=5;
try(DataInputStream dis=newdatainputstream(newfileinputstream(file))){
for(int i=0;i
阅读
toBinaryString
@MikeSamuel Big-endianI的javadoc将其更改为fin.Read()。我得了105分。我没有从文件中获取内容?read方法读取单个字节,每个字节有8位。要读取一个32位单元,您必须读取4个字节。+1用于“仅使用”如果这是一个好的解决方案,请将此答案标记为已接受(单击计票下方左侧的复选标记)。我没有看到左侧的复选标记。。。计票?
final int count = 5;

try (DataInputStream dis = new DataInputStream(new FileInputStream(file))) {
    for (int i = 0; i < count; i++) {
        int value = dis.readInt();
        System.out.println(Integer.toBinaryString(value));
    }
}