用Java读取二进制文件

时间:2011-03-29 10:03:17

标签: java php binary unpack

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

然后,使用PHP我访问数据库并提供将此数据导出到文件中的选项,因此我解压缩()二进制数据,并将其写入文件。

然后,必须在我正在编写的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”);

谢谢,

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

您是否尝试过使用Data Streams

答案 2 :(得分: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) { }
 }