Java Bytearrayoutputstream的实际用途是什么
我已经理解了Bytearrayoutputstream api。我的问题有点不同。我有兴趣了解什么是我将使用它的真实生活场景?出于各种原因,我似乎只觉得FileIO是有用的,我试图理解Bytearrayoutputstream的用例。如果您正在生成瞬态数据,最好使用字节数组来存储数据,而不是担心以后可能需要清理文件的所有情况Java Bytearrayoutputstream的实际用途是什么,java,api,io,Java,Api,Io,我已经理解了Bytearrayoutputstream api。我的问题有点不同。我有兴趣了解什么是我将使用它的真实生活场景?出于各种原因,我似乎只觉得FileIO是有用的,我试图理解Bytearrayoutputstream的用例。如果您正在生成瞬态数据,最好使用字节数组来存储数据,而不是担心以后可能需要清理文件的所有情况File.deleteOnExit()泄漏内存并在系统崩溃时失败。对于临时数据,从自动垃圾收集中获益很好 在具有会话复制的群集web应用程序上下文中,它还允许您在用户会话中共
File.deleteOnExit()
泄漏内存并在系统崩溃时失败。对于临时数据,从自动垃圾收集中获益很好
在具有会话复制的群集web应用程序上下文中,它还允许您在用户会话中共享数据。如果将用户的会话移动到另一个节点,则该数据仍可用于web应用程序。磁盘上的文件通常不是这样。我们可以使用
ByteArrayOutputStream
来计算粗略的对象内存大小
private int getBytesSize(Object o) {
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ObjectOutput out = null;
try {
out = new ObjectOutputStream(bos);
out.writeObject(o);
return bos.toByteArray().size;
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (out != null) {
out.close();
}
} catch (IOException ex) {
// ignore close exception
}
try {
bos.close();
} catch (IOException ex) {
// ignore close exception
}
}
return 0;
}
由于我经常在测试中使用原始帖子,所以这篇文章值得称赞。特别是在我测试处理二进制数据的代码时,“实际用途”是当您想写入字节数组而不是文件、套接字或。。。这种事经常发生。真正的问题是为什么你认为那没有用。