- ZipOutputStream を作る
- zip に入れるファイル毎に ZipOutputStream.putNextEntry で ZipEntry を追加する
- ZipOutputStream.write を書き込む
- 2, 3 の繰り返し
- ZipOutputStream.close
Android でアプリのデータを外部ストレージ(SDカード等)にまとめてエクスポートするために使いました。
以下サンプルコード。
try {
// String outfilePath で出力先のファイルパスが指定されているとする
ZipOutputStream out = new ZipOutputStream(new FileOutputStream(outfilePath));
byte[] buffer = new byte[1024];
int len;
// 引数などで String[] files として zip に追加したいファイルのファイルパスが指定されているとする
for(String file : files) {
InputStream in = new FileInputStream(file);
out.putNextEntry(new ZipEntry(file.getName())); // path名からファイル名だけにしておく
while ((len = in.read(buffer)) > 0) {
out.write(buffer, 0, len);
}
in.close();
}
out.close();
} catch(FileNotFoundException e){
// エラー処理
} catch(Exception e){
// エラー処理
}
0 件のコメント:
コメントを投稿