【问题标题】:Visual C++ BinaryReader in JavaJava 中的 Visual C++ BinaryReader
【发布时间】:2012-06-21 13:36:04
【问题描述】:

java 中是否有任何方法可以实现与 Visual C++ 中的BinaryReader() 相同的功能

【问题讨论】:

  • 也许检查BufferedReader?
  • @Gaara 我对编程很陌生。我一直在寻找一种读取二进制文件的方法,其中数值数据(正负浮点数据)以 16 位形式存储。现在,我一直在研究很多,但不知何故我无法做到这一点。每次我得到奇怪的结果。我的时间不多了,所以请不要生气并帮助我。

标签: java visual-c++ binarystream


【解决方案1】:

那就是DataInputStream

.....

【讨论】:

    【解决方案2】:
    public interface DataInput
    

    DataInput 接口用于从二进制文件中读取字节 在任何 Java 原语中流式传输并从中重建数据 类型。

    所有已知的实现类: DataInputStream、ImageInputStreamImpl、ImageOutputStreamImpl、ObjectInputStream、RandomAccessFile

    另外,您正在寻找 Java 中的类,而不是方法(因为 BinaryReader 是类,而不是 C++ 中的函数)

    JavaDocs

    【讨论】:

      【解决方案3】:

      我需要这个并写了一个等效的类。

      https://gist.github.com/vangorra/9470810

      它本质上是 .Net 的 BinaryReader 在 java 中的实现。它没有实现所有方法,但为任何需要走这条路的人提供了一个良好的开端。

      这个类可以做什么的例子:

      BinaryReaderDotNet reader = new BinaryReaderDotNet(new FileInputStream(new File("blah.bin")));
      reader.readInt32(); // returns int
      reader.readUInt32(); // returns long
      reader.readInt16(); // returns int (first bits are zeroed)
      reader.readUInt16(); // returns int (first bits are zeroed)
      reader.readString(); // returns a string.
      reader.readBoolean(); // returns a boolean
      reader.readSingle(); // returns a float
      

      【讨论】:

        猜你喜欢
        • 2015-10-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-12-31
        相关资源
        最近更新 更多