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