首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

InputStream read 步骤需要注意的地方

2012-12-28 
InputStream read 方法需要注意的地方因为做毕业设计的需要,要用到 InputStream ,需要自己实现一个 InputS

InputStream read 方法需要注意的地方
因为做毕业设计的需要,要用到 InputStream ,需要自己实现一个 InputStream 。因为 InputStream 是抽象类,已经有骨架实现,只需要实现 int read() 方法即可。
一开始是这样写的,

public int read(){    //此处略去若干字    byte b=...     //此处略去若干字    return (int)b ;}


可是发现不对,流传着传着还没到结尾就完了。感觉很蹊跷,这个问题困扰我累计10小时,左思右想不得结果。api是这样解释 read 方法的
int i=in.read();byte b=(byte)i;
看他们转换结果,反着来就可以了。经过测试 将 int 转换为 byte,当 int 在 0 到 127 范围内值是相等的;当 int 在 128 到 255 范围内,对应 byte 的 -128 到 -1,相当于减了个 256。所以猜想应该这样实现read 方法
public int read(){    //此处略去若干字    byte b=...     //此处略去若干字    if(b<0){       b=b+256;    }    return (int)b ;}
。经验证正确。

热点排行