我正在使用 java.util.zip 将一些配置资源添加到 jar 文件中。当我调用 addFileToZip() 方法时,它会完全覆盖 jar,而不是将文件添加到 jar 中。为什么我需要将配置写入 jar 完全无关紧要。而且我不希望使用任何外部 API。
编辑: jar 未在 VM 中运行,org.cfg.resource 是我试图将文件保存到的包,该文件是标准文本文档,并且正在编辑的 jar 包含使用此方法之前的正确信息.
我的代码:
public void addFileToZip(File fileToAdd, File zipFile)
{
ZipOutputStream zos = null;
FileInputStream fis = null;
ZipEntry ze = null;
byte[] buffer = null;
int len;
try {
zos = new ZipOutputStream(new FileOutputStream(zipFile));
} catch (FileNotFoundException e) {
}
ze = new ZipEntry("org" + File.separator + "cfg" +
File.separator + "resource" + File.separator + fileToAdd.getName());
try {
zos.putNextEntry(ze);
fis = new FileInputStream(fileToAdd);
buffer = new byte[(int) fileToAdd.length()];
while((len = fis.read(buffer)) > 0)
{
zos.write(buffer, 0, len);
}
} catch (IOException e) {
}
try {
zos.flush();
zos.close();
fis.close();
} catch (IOException e) {
}
}