PHP实现java中的DatainputStream类.
在项目中,碰到一个解析流的操作,php里面没有现成的类.
那没办法,只能用二进制模式打开文件,再和java的datainputstream对比着打开文件,一个一个的实现流读取和解析.
废话不多说,代码贴出,其实很简单很简单.
DataInputStream.php
<?php /** * 流解析 * --------------------------------------------- * @Author: Simon 夏向红 sanwkj@163.com * @Date: 2012-02-22 * @package cn.com.nearme.gostore.theme * @name :DataInputStream.php * @version v1.0 * */ class DataInputStream { private $stream = null; /** * 构造函数 * * @param stream of fopen .. $in */ public function __construct( $in ){ $this->stream = $in; } /** * 析构函数 * */ public function __destruct(){ @fclose( $this->stream ); } /** * 读取字节 * * @param int sizeof you want to read $len * @return string */ private function read( $len=1 ){ $len = intval( $len ); if( $len>0 ) { if( !feof( $this->stream ) ) { $read = @fread($this->stream,$len); if( strlen($read)!=$len ){ throw new Exception('流文件已经到末尾,读取错误',222); } else { return $read; } } else { throw new Exception('流文件已经到末尾,读取错误',222); } } else { return ''; } } /** * 读取一个字节,并转换成int * * @return int */ public function readByte(){ return hexdec(bin2hex($this->read(1))); } /** * 短整形 * * @return int */ public function readShort(){ return hexdec(bin2hex($this->read(2))); } /** * 整形数据 * * @return int */ public function readInt(){ return hexdec(bin2hex($this->read(4))); } /** * 读取一个字符串 * * @return string */ public function readUTF(){ $len = $this->readShort(); return $this->read($len); } /** * 读取指定长度的数据,并作为字符串返回,图片等二进制文件,可能需要这样读取. * * @param int $len * @return unknown */ public function readFully( $len ) { return $this->read( $len ); } /** * readUTF的别名 * * @return unknown */ public function readString(){ return $this->readUTF(); } /** * 长整形. * * @return unknown */ public function readLong(){ return hexdec(bin2hex($this->read(8))); } } ?>
登录后复制
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前
By 尊渡假赌尊渡假赌尊渡假赌
击败分裂小说需要多长时间?
1 个月前
By DDD
R.E.P.O.保存文件位置:在哪里以及如何保护它?
1 个月前
By DDD
R.E.P.O.最佳图形设置
2 周前
By 尊渡假赌尊渡假赌尊渡假赌
刺客信条阴影:贝壳谜语解决方案
1 周前
By DDD

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)