サイズが〜100MBで、ファイルが〜15000の大きなアーカイブ(私の場合はzip)があります。このアーカイブからファイルを 1 つだけ抽出する必要があります。
次のコードを試しました:
final String zipPath = "archive.zip";
FileInputStream fin = new FileInputStream(zipPath);
in = new ZipInputStream(fin);
for (ZipEntry entry = in.getNextEntry(); entry != null; entry = in.getNextEntry()) {
if(entry.equals("file.name")){
//unzip this entry
break;
}
}
動作しますが、遅すぎます。
アーカイブで必要なファイルを見つける別の可能性はありますか? たとえば、Linuxでは、コマンドで非常に高速に実行できます
unzip archive.zip myfile.name
一般に、あるアーカイブから 1 つのファイルを見つけて解凍する必要があります。それは別のフォーマットである可能性があります... 別のフォーマットを使用すると、より簡単になる可能性があります。