gpt4 book ai didi

java - 当缓冲区已满时,DataOutputStream 会自动刷新吗?

转载 作者:行者123 更新时间:2023-11-29 06:08:55 26 4
gpt4 key购买 nike

我正在通过 DataOutputStream (RandomAccessFile->FileOutputStream->BufferedOutputStream->DataOutputStream) 将信息写入文件。

我假设如果用于数据输出的缓冲区已满,那么数据输出流会自动刷新吗?

我问的原因是我在 for 循环中写入数据,并在循环后刷新(我猜测在循环的每次迭代后刷新会破坏使用缓冲区的意义),并且当数据太大 (4MB atm) 我的文件没有正确输出。

最佳答案

DataOutputStream 没有缓冲区,所以没有什么可以刷新的。一切都写在 write()/writeXXX() 方法中。然而 BufferedOutputStream 当然有一个缓冲区,因此您当然需要刷新或关闭才能将数据写入文件。您需要关闭最外层的流,即在本例中为 DataOutputStream,而不是任何嵌套流。

when the data gets too big (4MB atm) my file isn't coming out correctly.

您必须发布您的代码。 BufferedOutputStream的缓冲区默认为8k字节,与4Mb无关。

关于java - 当缓冲区已满时,DataOutputStream 会自动刷新吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7702838/

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