Java中writeByte()的数值限制

顾名思义,数据输出流方法writeByte(int)在流上写入一个1字节int。

这有什么限制?是256还是带符号的-128到127?

回答:

writeByte(int)调用write(int)。的文档write(int)说:

将指定的字节(参数b的低8位)写入基础输出流。

因此,int参数所位于的整数范围无关紧要。两个相差倍数的参数256将导致写入相同的字节。

一种简单的测试方法是使用ByteArrayOutputStream。试试这个程序:

public static void main(String[] args) throws IOException {

ByteArrayOutputStream baos = new ByteArrayOutputStream();

DataOutputStream dos = new DataOutputStream(baos);

dos.writeByte(-128);

dos.writeByte(-128 + 256);

System.out.println(Arrays.toString(baos.toByteArray()));

}

输出是[-128, -128]因为相同的内容byte已被写入两次。

以上是 Java中writeByte()的数值限制 的全部内容, 来源链接: utcz.com/qa/416207.html

回到顶部