私のプロジェクトには、変更されてzipファイルに追加されたいくつかのxmlテンプレートがあります。問題は、テンプレートがすべてテンプレートフォルダーにあることでしたが、zipファイルの予想される形式は、それらをルートに直接配置することでした。
プロジェクト階層:templates / blah.xml
予想されるzipファイル階層:blah.xml
とにかく、xmlファイルをプロジェクトのルートフォルダに移動せずにそれを達成するのですか?
ありがとう
私は脳を溶かしました...入力と出力に異なる名前を使用することによって
byte[] buf = new byte[1024];
try
{
ZipOutputStream out = new ZipOutputStream(new FileOutputStream(targetFile));
FileInputStream in = new FileInputStream("templates/blah.xml");
out.putNextEntry(new ZipEntry("blah.xml"));
int len;
while ((len = in.read(buf)) > 0)
{
out.write(buf, 0, len);
}
out.closeEntry();
in.close();
out.close();
} catch (IOException e)
{
e.printStackTrace();
}
ZipEntry をサブクラス化して、好きなようにすることができます。ただし、コードがコンテンツをどのように取得しているかを調べてから、それを修正して正しいリソースを取得する必要があります。