62,614
社区成员
发帖
与我相关
我的任务
分享
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]);
}
}
}
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 只写入一个字节。
}
public synchronized void write(int b) {
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 final void writeInt(int v) throws IOException {
out.write((v >>> 24) & 0xFF);
out.write((v >>> 16) & 0xFF);
out.write((v >>> 8) & 0xFF);
out.write((v >>> 0) & 0xFF);
incCount(4);
}