gpt4 book ai didi

java - 比较输出流性能

转载 作者:行者123 更新时间:2023-12-01 19:27:52 28 4
gpt4 key购买 nike

我有一个可序列化的对象,我想将其写入文件。我应该使用 ObjectOutputStream.writeObject() 或将其转换为 byte[] (使用 ObjectOutputStream),然后使用 FileOutputStream.write( )

ObjectOutputStream objectOutputStream = new ObjectOutputStream(new FileOutputStream(file))
objectOutputStream.writeObject(myObject);

ByteArrayOutputStream byteOut = new ByteArrayOutputStream();
ObjectOutputStream out;
out = new ObjectOutputStream(byteOut);
out.writeObject(myObject);
new FileOutputStream(file).write(byteOut.toByteArray());

最佳答案

缓冲可以通过将小型写入合并为较大的批量写入来提高性能。如果您想引入缓冲,请使用 BufferedOutputStream ,它可以完成您对字节数组流所做的操作,而无需更改下游代码。

// Unbuffered
ObjectOutputStream outputStream = new ObjectOutputStream(new FileOutputStream(file));

// Buffered
ObjectOutputStream outputStream = new ObjectOutputStream(new BufferedOutputStream(new FileOutputStream(file)));

这样您就可以继续使用ObjectOutputStream,而其余代码不必知道流是缓冲的还是未缓冲的。

与任何与性能相关的更改一样,您应该对两种方法进行基准测试,看看哪种方法性能更好。在没有经过实证测试的情况下,不要做出这样的改变。如果您不测试,您只是猜测。

关于java - 比较输出流性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60916127/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com