gpt4 book ai didi

Java - 以编程方式将文件附加到 Jar 文件

转载 作者:行者123 更新时间:2023-12-02 02:41:11 25 4
gpt4 key购买 nike

我一直在寻找一种方法来做到这一点,找到了各种不同的方法来解决这个问题,但没有一个对我有用。

我只需要一种将文件附加到 Jar 文件的方法,如果它们已经存在则进行覆盖,并且我也想要最快的方法来执行此操作。我尝试将其转换为 Zip 文件并使用 Zip 文件系统 添加文件,但遇到了诸如“未找到 zip END header ”之类的错误,其他方法可以工作,但速度非常慢(6 MB文件花费了 3 分钟)。

将文件附加到 Jar 文件的最快方法是什么?

编辑:是的,继续,投反对票而不是回答,非常有成效。

最佳答案

您可以像更新文本文件一样执行此操作:

  • 从当前文件打开输入流。
  • 打开新(临时)文件的输出流。
  • 从输入流读取:
    • 如果不需要更改,则写入输出流。
    • 如果应删除内容,请勿写入。
    • 如果内容需要更改,请先更改,然后再编写。
    • 如果此时需要添加新内容,请立即编写。
    • 重复此操作,直到处理完所有内容。
  • 关闭两个流。
  • 删除/重命名旧文件并将新文件重命名为旧文件。
<小时/>

就您而言,这意味着:

  • 从要添加的文件列表开始。
  • 打开ZipInputStream在当前 Jar 文件上。
  • 打开ZipOutputStream在新的(临时)Jar 文件上。
  • 复制所有现有条目(文件),要替换的文件除外。
  • 插入所有新文件。
  • 关闭两个流。
  • 删除/重命名旧 Jar 文件并将新文件重命名为旧 Jar 文件。

您当然可以颠倒顺序。

  • 打开ZipOutputStream在新的(临时)Jar 文件上。
  • 插入所有新文件,并记住它们的名称。
  • 打开ZipInputStream在当前 Jar 文件上。
  • 复制所有现有条目(文件),已添加的文件除外。
  • 关闭两个流。
  • 删除/重命名旧 Jar 文件并将新文件重命名为旧 Jar 文件。

关于Java - 以编程方式将文件附加到 Jar 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45422639/

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