簡単な質問、
一連のテキストファイルをzipに書き込んでおり、fileoutputstreamをzipoutputstreamでラップしてから、printwriterでラップしています。
public static int saveData(File outfile, DataStructure input) {
//variables
ArrayList<String> out = null;
FileOutputStream fileout = null;
ZipOutputStream zipout = null;
PrintWriter printer = null;
//parameter tests
try {
fileout = new FileOutputStream(outfile);
zipout = new ZipOutputStream(fileout);
printer = new PrintWriter(zipout);
} catch (Exception e) {
e.printStackTrace();
return util.FILE_INVALID;
}
for(DataItem data : input){
//process the data into a list of strings
try {
zipout.putNextEntry(new ZipEntry( dataFileName ));
for(String s : out) {
printer.println(s);
}
zipout.closeEntry();
} catch (Exception e) {
try {
fileout.close();
} catch (Exception x) {
x.printStackTrace();
return util.CRITICAL_ERROR;
}
e.printStackTrace();
return util.CRITICAL_ERROR;
}
}
try {
fileout.close();
} catch (Exception e) {
e.printStackTrace();
return util.CRITICAL_ERROR;
}
return util.SUCCESS;
}
以前、私が開発していたアプリでは、テストのために現在のディレクトリに保存していました。すでに存在するファイルの場合、ファイルが上書きされることを知っています(そしてこれを利用しています)。私が知らないのは、zipの動作です。同じ名前のエントリを上書きしますか?または、zipファイル全体を上書きするだけですか(これは私の目的には便利です)。
K.バラッド