我有宣布为Java变量:Java的DataOutputStream类对象刷新8192个字节
RandomAccessFile file = new RandomAccessFile("path-to-file");
DataOutputStream output = new DataOutputStream(new BufferedOutputStream(new FileOutputStream(file.getFD())));
的问题是,2048之后推出的整数(或8192个字节),如果我尝试写一个又一个,输出会在没有任何警告的情况下刷新到磁盘。
经过一番研究,我发现DataOutputStream有一个64k的限制,我找不到有关BufferedOutputStream或FileOutputStream的官方信息。
任何人都可以告诉我哪个结构有这个限制,我该如何增加它?
这也很好找到为什么结构刷新而不被告知而不是仅仅引发异常?
那么,为什么你在随机访问文件上使用缓冲输出流? –
是什么让你觉得它会引发异常?缓冲的目的是为了提高效率 - 如果你试图使用它,这样你就可以明确地停止写入数据,直到你刷新它,我建议你写一个你自己的流封装器。 –
除了用于BufferedOutputStream的javadoc之外,它显然是负责缓冲的类? –