是否可以在不重写的情况下将数据添加到文件中?

bas*_*ero 11 c c++ java file prepend

我处理非常大的二进制文件(每个文件几GB到多TB).这些文件以旧格式存在,升级需要将标头写入文件的FRONT.我可以创建一个新文件并重写数据,但有时这可能需要很长时间.我想知道是否有更快的方法来完成此升级.该平台仅限于Linux,我愿意使用低级函数(ASM,C,C++)/文件系统技巧来实现这一目标.初始库是Java,JNI是完全可以接受的.

peo*_*oro 9

本机没有通用的方法.

也许某些文件系统提供了一些功能来执行此操作(无法提供任何关于此的提示),但您的代码将依赖于文件系统.


解决方案可以是模拟文件系统:您可以将数据存储在一组文件中,然后提供一些打开,读取和写入数据的功能,就像它是单个文件一样.