日志标签:流

《Java RMI》——流

分类:java, rmi评论:2条作者:ticmy日期:2012-06-30

读取字节和写入字节有两个基本的类,分别是InuputStream和OutputStream。两个类里的方法都很直接,具体含义方法及可直接参考API文档。 有个比较有趣的地方可能会让新手疑惑,在InputStream里有一个方法:public int read() throws IOException;这个方法表示读取一个字节,并返回。很多人会问,为什么返回值不是byte,而是一个int?原因在于“如果到达流的末尾,则返回 -1”。byte类型的-1的二进制补码是1111 1111,若使用byte类型作为返回值,则无法区分数据中的1111 1111还是流达到末尾的指示符。使用int后,所有数据中的字节反应到int中都是一个非负值,而只有流到达末尾的指示符是负值(-1)。与此对应的是OutputStream中的public abstract void write(int b) throws IOException方法,该方法写入一个字节,按理说这里不需要什么标识之类的东西,为什么要传入一个int呢?实际上,传入的int的有效范围只有[0,255](一个byte能表示的范围),如果超出这个范围,则会截断成一个byte。声明参数类型为int,是为了个前面说的read方法相对应,很可能你需要从InuputStream读取一个字节后将其写入到另外一个OutputStream,因为InuputStream那个read的返回值…
Tags: , ,