import java.io.ByteArrayOutputStream;public class TestByteArrayOutputStream{
public static void main(String args[]){
ByteArrayOutputStream b = new ByteArrayOutputStream();
b.write(3);
b.write(4);
b.write(5);
byte[] data = b.toByteArray();
int row=data.length;
for(int i=0;i<row;i++){
System.out.println(data[i]);
}
}
}
初学者,请问,toByteArray();返回的是一个字节数组,现在写了3个整数进去,而一个整数占4个字节,应该
data的长度是12才是,怎么是3?还能输出整数出来?
out.write((v >>> 24) & 0xFF);
out.write((v >>> 16) & 0xFF);
out.write((v >>> 8) & 0xFF);
out.write((v >>> 0) & 0xFF);
incCount(4);
}
int newcount = count + 1;
if (newcount > buf.length) {
buf = Arrays.copyOf(buf, Math.max(buf.length << 1, newcount));
}
buf[count] = (byte)b;
//如果我写的整数超过了byte的表示范围,后面的值就会被截去,这样保存或者
//得到的值就不准确,api上怎么不说啊?还是我理解错了?
count = newcount;
}
public static void main(String[] args) {
ByteArrayOutputStream o = new ByteArrayOutputStream();
o.write(128);
o.write(1000);
byte d[] = o.toByteArray();
System.out.println(d[0]); //打印-128 只写入一个字节。
System.out.println(d[1]); //打印-24 只写入一个字节。
}
throws IOException将指定的字节写入此输出流。write 的常规协定是:向输出流写入一个字节。要写入的字节是参数 b 的八个低位。b 的 24 个高位将被忽略。