Java 中 writeByte() 的数值限制

2024-03-17

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

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


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

将指定字节(参数 b 的低八位)写入 底层输出流。

因此,整数的范围并不重要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已经写了两次了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java 中 writeByte() 的数值限制 的相关文章

随机推荐