java:ByteArrayOutputStream小问题

来源:百度知道 编辑:UC知道 时间:2024/07/04 08:52:12
public void write(byte[] b,
int off,
int len)

public void write(int b)
这是ByteArrayOutputStream的一个单参数方法
我不太明白,既然是要写入的是一个字节,为什么不是public void write(byte b),因为int是4个字节,相当于是长度为4的byte[].而且据我了解,只有套了DataOutputStream以后才能些入long,int型的数据.
有高手指点下吗?

JDK说明:
将指定的字节写入此输出流。write 的常规协定是:向输出流写入一个字节。要写入的字节是参数 b 的八个低位。b 的 24 个高位将被忽略。

其实就是写入一个byte。OutputStream的方法,还有InputStream的read返回也是int,Java就这么设计的,好像是处于一个编程习惯,实际上就是一个byte。

java api说它只写低8位,高24位被忽略了。
原因可能是大部分机器都是32位机,甚至64位,读写32位更快。