mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-05-09 23:51:34 +08:00
用List参数去调用array参数的方法, 这个方法复用逻辑是不太好的, List转array会创建新数组, 造成性能浪费.
如果反过来, array转List, 可以使用Arrays.asList(), 则可以减少对象创建.
This commit is contained in:
parent
eefb219e43
commit
ff2930cba3
@ -32,9 +32,9 @@ public class ZipReplacer {
|
|||||||
* @param charset 读取编码格式
|
* @param charset 读取编码格式
|
||||||
* @param charsetOut 输出编码格式
|
* @param charsetOut 输出编码格式
|
||||||
*/
|
*/
|
||||||
public static void replace(File srcFile, File tarFile, String[] innerFiles, File[] replaceFiles, Charset charset, Charset charsetOut) {
|
public static void replace(File srcFile, File tarFile, String[] innerFiles, List<File> replaceFiles, Charset charset, Charset charsetOut) {
|
||||||
// 记录zip中是否存在相同路径的文件, 是 更新文件 否,添加文件
|
// 记录zip中是否存在相同路径的文件, 是 更新文件 否,添加文件
|
||||||
boolean[] updates = new boolean[replaceFiles.length];
|
boolean[] updates = new boolean[replaceFiles.size()];
|
||||||
try (ZipFile zipFile = new ZipFile(srcFile, charset);
|
try (ZipFile zipFile = new ZipFile(srcFile, charset);
|
||||||
FileOutputStream fos = new FileOutputStream(tarFile);
|
FileOutputStream fos = new FileOutputStream(tarFile);
|
||||||
ZipOutputStream zos = new ZipOutputStream(fos);
|
ZipOutputStream zos = new ZipOutputStream(fos);
|
||||||
@ -50,7 +50,7 @@ public class ZipReplacer {
|
|||||||
// 存在同路径文件,替换
|
// 存在同路径文件,替换
|
||||||
if (update) {
|
if (update) {
|
||||||
updates[i] = true;
|
updates[i] = true;
|
||||||
data.put(zipEntryInName, FileUtil.getInputStream(replaceFiles[i]));
|
data.put(zipEntryInName, FileUtil.getInputStream(replaceFiles.get(i)));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -63,7 +63,7 @@ public class ZipReplacer {
|
|||||||
for (int i = 0; i < updates.length; i++) {
|
for (int i = 0; i < updates.length; i++) {
|
||||||
if (!updates[i]) {
|
if (!updates[i]) {
|
||||||
// 原zip中不存在同路径文件,添加到制定目录
|
// 原zip中不存在同路径文件,添加到制定目录
|
||||||
data.put(innerFiles[i], FileUtil.getInputStream(replaceFiles[i]));
|
data.put(innerFiles[i], FileUtil.getInputStream(replaceFiles.get(i)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (String key : data.keySet()) {
|
for (String key : data.keySet()) {
|
||||||
@ -73,10 +73,8 @@ public class ZipReplacer {
|
|||||||
throw new IORuntimeException(e);
|
throw new IORuntimeException(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
public static void replace(File srcFile, File tarFile, String[] innerFiles, File[] replaceFiles, Charset charset, Charset charsetOut) {
|
||||||
public static void replace(File srcFile, File tarFile, String[] innerFiles, List<File> replaceFiles, Charset charset, Charset charsetOut) {
|
replace(srcFile, tarFile, innerFiles, Arrays.asList(replaceFiles), charset, charsetOut);
|
||||||
File[] files = replaceFiles.toArray(new File[0]);
|
|
||||||
replace(srcFile, tarFile, innerFiles, files, charset, charsetOut);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void replace(File srcFile, File tarFile, String[] innerFiles, String[] replaceFiles, Charset charset, Charset charsetOut) {
|
public static void replace(File srcFile, File tarFile, String[] innerFiles, String[] replaceFiles, Charset charset, Charset charsetOut) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user