顾名思义,数据输出流方法writeByte(int)在流上写入一个1字节int。
这有什么限制?是256还是带符号的-128到127?
writeByte(int)调用write(int)。的文档write(int)说:
writeByte(int)
write(int)
将指定的字节(参数b的低8位)写入基础输出流。
因此,int参数所位于的整数范围无关紧要。两个相差倍数的参数256将导致写入相同的字节。
int
256
一种简单的测试方法是使用ByteArrayOutputStream。试试这个程序:
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已被写入两次。
[-128, -128]
byte