gpt4 book ai didi

java - DataInputStream\DataOutputStream 的性能

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:07:05 25 4
gpt4 key购买 nike

我目前正在使用缓冲流来读写一些文件。在这两者之间,我做了一些数学处理,其中一个符号是一个字节。

阅读:

InputStream input = new FileInputStream(outputname)
input.read(byte[] b,int off,int len)

写:

OutputStream output = new BufferedOutputStream(
new FileOutputStream(outputname),
OUTPUTBUFFERSIZE
)
output.write((byte)byteinsideaint);

现在我需要添加一些标题数据,并支持短符号。我想使用 DataInputStreamDataOutputStream 来避免自己将其他类型转换为字节,我想知道它们的性能如何。

我需要用吗

OutputStream output = new DataOutputStream(
new BufferedOutputStream(
new FileOutputStream(outputname),
OUTPUTBUFFERSIZE
)
);

保持数据缓冲的优势还是足够好用

OutputStream output = new DataOutputStream(
new FileOutputStream(outputname)
)

最佳答案

你应该在两者之间添加 BufferedOutputStreamDataOutputStream不实现任何缓存(这很好:关注点分离),如果不缓存底层 OutputStream,其性能将非常差。即使是最简单的方法,如 writeInt()可以导致四次单独的磁盘写入。

据我所知只有write(byte[], int, int)writeUTF(String)正在将数据写入一个 byte[] block 中。其他人逐字节写入原始值(如 intdouble)。

关于java - DataInputStream\DataOutputStream 的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9568072/

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