当前位置: 首页 > 面试题库 >

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

李昱
2023-03-14
问题内容

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


问题答案:

没有本机执行此操作的一般方法。

也许某些文件系统提供了一些功能来执行此操作(对此没有任何提示),但是您的代码将取决于文件系统。

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



 类似资料:
  • 问题内容: 我正在尝试使用Python的ftplib读取文件而不编写它们。大致相当于: 但使用FTP。 我试过了: 但这不起作用。文档中的唯一示例涉及使用该格式编写文件。是否可以在不先写入的情况下读取ftp文件? 问题答案: 好吧,您的答案就在眼前:retrbinary方法接受对函数的引用作为第二个参数,该函数在从ftp连接中检索文件内容时被调用。 这是一个简单的示例: 您应该实现writeFun

  • 问题内容: 在试验/快速而肮脏的开发阶段,Maven2让我发疯。 我有一个文件,该文件定义了要使用的Web应用程序框架的依赖关系,并且可以从该文件快速生成入门项目。但是,有时我想链接到尚未定义文件的第三方库,因此,不是pom.xml手动为第三方库创建文件并安装它,然后将依赖项添加到我的,告诉:“除了我定义的依赖项之外,还包括其中的所有。” 看起来这应该很简单,但是如果是这样,我就缺少了一些东西。

  • 问题内容: 我有以下情况。 我有一个从另一个基类继承并重写一个方法的Java类。基本方法不会引发异常,因此没有声明。 现在我自己的方法应该能够引发异常,但是我要么有选择 吞下异常 添加抛出声明 两者都不令人满意,因为第一个会默默地忽略异常(好的,我可以执行一些日志记录),第二个会因为方法头不同而产生编译器错误。 问题答案: 如果确实需要,可以抛出未经检查的异常而不必声明它们。未检查的异常扩展。扩展

  • 问题内容: 我正在尝试为我的代码编写一些单元测试,这些代码可以连接到SQL Server以实现持久性,但是我希望能够通过将其指向SQL Server实例来运行单元测试,并让测试创建自己的数据库来运行测试,因此在每次测试之后,它都可以删除数据库,然后在设置之前先创建下一个测试,然后再重新创建它,因此我知道之前的测试没有剩余的旧数据或结构会影响下一个测试。 问题答案: 简而言之:不,您不能那样做。您也

  • 问题内容: 我正在优化将约10TB数据导入MySQL数据库的过程。目前,我可以在当前笔记本电脑上约14分钟内导入2.9GB(+ 0.8GB索引)。该过程包括读取数据文件(Oracle“ .dat”导出),解析数据,将数据写入CSV文件并在其上执行“ LOAD DATA LOCAL” sql命令。 是否可以提高导入速度(无需更改硬件)?有没有一种方法可以删除将文件写入文件系统并让MySQL再次读取它

  • 问题内容: 我正在处理可处理大量Excel 2007文件的应用程序,并且正在使用OpenPyXL进行此操作。OpenPyXL有两种不同的读取Excel文件的方法:一种是将整个文档立即加载到内存中的“常规”方法,另一种是使用迭代器逐行读取的方法。 问题是,当我使用迭代器方法时,我没有得到任何文档元数据,例如列宽和行/列数,而我 确实 需要此数据。我假设此数据存储在顶部附近的Excel文档中,因此不必