【问题标题】:Read a binary file in Java用 Java 读取二进制文件
【发布时间】:2011-07-25 03:45:49
【问题描述】:

我有一个 java 程序,它在 MySQL“BINARY (128)”字段中存储一个 128 字节长度的字节数组。

然后,我使用 PHP 访问数据库并选择将这些数据导出到文件中,因此我 unpack() 二进制数据,并将其写入文件。

然后,必须在我正在编写的 Java 程序中读取此文件,但我找不到如何读取此数据。有什么建议吗?

我试过了:

ByteArrayOutputStream baos = new ByteArrayOutputStream();
int i = 0;
while (i < 128) {
  System.out.println(baos.read());
  i++;
}

但是bis.read()返回一个int,而我发给mysql db的字节数组是一个字符串:"text".getBytes("utf-8");

谢谢,

【问题讨论】:

  • A ByteArrayOutputStream 仅用于输出/写入。它没有 read() 方法。

标签: java php binary unpack


【解决方案1】:

结合@Ricardo 和@MarcoS 的答案

 DataInputStream dis = new DataInputStream(new FileInputStream("my-data-file.dat"));
 try {
     byte[] bytes = new byte[128];
     dis.readFully(bytes);
     // read some more.

 } finally {
     try {
        dis.close();
     } catch(IOException ignored) { }
 }

【讨论】:

    【解决方案2】:

    为什么不使用 FileInputStream? (http://download.oracle.com/javase/1.4.2/docs/api/java/io/FileInputStream.html)

    read() 方法读取一个字节,尽管它返回一个 int。

    【讨论】:

    • +1:最好使用对 Java 6 Javadocs 的引用,因为 Java 1.4 和 5.0 现在都已停产。
    【解决方案3】:

    你试过Data Streams吗?

    【讨论】:

      猜你喜欢
      • 2021-07-26
      • 1970-01-01
      • 2015-07-27
      • 2014-12-19
      • 1970-01-01
      • 2012-07-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多