小编hin*_*gen的帖子

java ObjectOutputStream 中的开销?

我对 ObjectOutputStream 的行为感到困惑。写入数据时似乎有 9 个字节的开销。考虑下面的代码:

float[] speeds = new float[96];
float[] flows = new float[96];

//.. do some stuff here to fill the arrays with data

ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos=null;
try {
    oos = new ObjectOutputStream(baos);
    oos.writeInt(speeds.length);
    for(int i=0;i<speeds.length;i++) {
        oos.writeFloat(speeds[i]);
    }
    for(int i=0;i<flows.length;i++) {
        oos.writeFloat(flows[i]);
    }
    oos.flush();
} catch (IOException e) {
    e.printStackTrace();
} finally {
    try {
        if(oos!=null) {
            oos.close();
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
}

byte[] array = baos.toByteArray();
Run Code Online (Sandbox Code Playgroud)

数组的长度总是 781,而我希望它是 …

java serialization bytearray objectoutputstream

5
推荐指数
1
解决办法
3409
查看次数