我有一个使用JAVA程序编写的文件,它有一个以二进制形式写的整数数组我在这个数组上做了一个for循环并用这个方法写它
public static void writeInt(OutputStream out, int v) throws IOException {
out.write((v >>> 24) & 0xFF);
out.write((v >>> 16) & 0xFF);
out.write((v >>> 8) & 0xFF);
out.write((v >>> 0) & 0xFF);
}
Run Code Online (Sandbox Code Playgroud)
我问的是如何阅读这个文件PHP.
Ora*_*ill 12
我相信您要寻找的代码是:
$byteArray = unpack("N*",file_get_contents($filename));
Run Code Online (Sandbox Code Playgroud)
更新: OP提供的工作代码
$filename = "myFile.sav";
$handle = fopen($filename, "rb");
$fsize = filesize($filename);
$contents = fread($handle, $fsize);
$byteArray = unpack("N*",$contents);
print_r($byteArray);
for($n = 0; $n < 16; $n++)
{
echo $byteArray [$n].'<br/>';
}
Run Code Online (Sandbox Code Playgroud)
您应该将文件作为字符串读取,然后使用 unpack 来解析它。在本例中,您已按大端字节顺序存储了 32 位整数,因此请使用:
$out = unpack("N", $in);
Run Code Online (Sandbox Code Playgroud)
格式代码记录在这里:http ://www.php.net/manual/en/function.pack.php
| 归档时间: |
|
| 查看次数: |
29414 次 |
| 最近记录: |