我知道这里有一个类似的问题,来自一个想将单个文件分成多个文件的人。遗憾的是,由于创建新文件会产生一定的开销,因此该解决方案不适用于我。
背景(无需阅读):
我想要做的是生成任意大小的 PDF 文件来播种数据库(即调用具有所需文件大小的方法,以千字节或兆字节为单位,应该生成所需大小的文件)。
目前,我通过使其随机并将其以 1KB 块(以段落形式)放入文件中来确保输入数据不可压缩。在将输出字节数绘制为所需字节数的函数后,我更改了算法以解释这种(令人愉快和预期的)线性关系。
然而,由于输入数据的随机性,这种方法存在一定的不确定性,其绝对值会随着所需大小的增加而增加(因此,尽管它减少了百分之一,但百分之一在 20 MB 的文件中,一个百分比的绝对值变得非常重要)。
理想情况下,我将能够生成任意大小的文件,大小在千字节以内,但为了做到这一点,我需要知道任何给定操作后的文件大小,为了知道这一点,我需要知道什么时候PDFWriter 写入其缓冲区。或者至少该缓冲区有多大(即,如果缓冲区小于一千字节,则写入时间无关紧要,因为我只关心准确到该边距内)。
问题:
有没有办法在不关闭文档的情况下使用文本检查实际要在 PDF 中写入磁盘的数据字节数?
还是“关闭文档”仅仅意味着它刷新缓冲区并关闭流(即它不需要在文件关闭时将任何额外的非用户输入数据量写入文件)?