本文整理汇总了Java中org.apache.tools.zip.ZipOutputStream.setEncoding方法的典型用法代码示例。如果您正苦于以下问题:Java ZipOutputStream.setEncoding方法的具体用法?Java ZipOutputStream.setEncoding怎么用?Java ZipOutputStream.setEncoding使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.apache.tools.zip.ZipOutputStream
的用法示例。
在下文中一共展示了ZipOutputStream.setEncoding方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: zip
import org.apache.tools.zip.ZipOutputStream; //导入方法依赖的package包/类
/**
* <p>
* 压缩文件
* </p>
*
* @param sourceFolder 压缩文件夹
* @param zipFilePath 压缩文件输出路径
*/
public static void zip(String sourceFolder, String zipFilePath) throws Exception {
OutputStream out = new FileOutputStream(zipFilePath);
BufferedOutputStream bos = new BufferedOutputStream(out);
ZipOutputStream zos = new ZipOutputStream(bos);
// 解决中文文件名乱码
zos.setEncoding(CHINESE_CHARSET);
File file = new File(sourceFolder);
String basePath = null;
if (file.isDirectory()) {
basePath = file.getPath();
} else {
basePath = file.getParent();
}
zipFile(file, basePath, zos);
zos.closeEntry();
zos.close();
bos.close();
out.close();
}
示例2: zip
import org.apache.tools.zip.ZipOutputStream; //导入方法依赖的package包/类
public static void zip(String path, List<File> files) throws IOException {
ZipOutputStream zos = new ZipOutputStream(new BufferedOutputStream(
new FileOutputStream(path), 1024));
for(File f : files) {
String zipName = f.getName();
if(!f.getName().contains(".png")) {
zipName = f.getName() + ".xml";
}
ZipEntry ze = new ZipEntry(zipName);
ze.setTime(f.lastModified());
DataInputStream dis = new DataInputStream(new BufferedInputStream(
new FileInputStream(f)));
zos.putNextEntry(ze);
int c;
while ((c = dis.read()) != -1) {
zos.write(c);
}
}
zos.setEncoding("gbk");
zos.closeEntry();
zos.close();
}
示例3: Zipper
import org.apache.tools.zip.ZipOutputStream; //导入方法依赖的package包/类
/**
* 创建Zipper对象
*
* @param out
* 输出流
* @param filter
* 文件过滤,不过滤可以为null。
* @param srcFilename
* 源文件名。可以有多个源文件,如果源文件是目录,那么所有子目录都将被包含。
*/
protected Zipper(OutputStream out, List<FileEntry> fileEntrys,
String encoding) {
Assert.notEmpty(fileEntrys);
long begin = System.currentTimeMillis();
log.debug("开始制作压缩包");
try {
try {
zipOut = new ZipOutputStream(out);
if (!StringUtils.isBlank(encoding)) {
log.debug("using encoding: {}", encoding);
zipOut.setEncoding(encoding);
} else {
log.debug("using default encoding");
}
for (FileEntry fe : fileEntrys) {
zip(fe.getFile(), fe.getFilter(), fe.getZipEntry(), fe
.getPrefix());
}
} finally {
zipOut.close();
}
} catch (IOException e) {
throw new RuntimeException("制作压缩包时,出现IO异常!", e);
}
long end = System.currentTimeMillis();
log.info("制作压缩包成功。耗时:{}ms。", end - begin);
}
示例4: setZipOutputStream
import org.apache.tools.zip.ZipOutputStream; //导入方法依赖的package包/类
protected static void setZipOutputStream(ZipOutputStream zos, String encoding, String comment) {
zos.setLevel(Deflater.BEST_COMPRESSION);
if (StringUtils.isNotBlank(encoding)) {
zos.setEncoding(encoding);
}
if (StringUtils.isNotBlank(comment)) {
zos.setComment(comment);
}
}
示例5: zip
import org.apache.tools.zip.ZipOutputStream; //导入方法依赖的package包/类
/**
* 压缩文件夹或文件
*
* @param src
* src
* @param archive
* archive
* @param comment
* 压缩包注释
* @throws FileNotFoundException
* FileNotFoundException
* @throws IOException
* IOException
*/
public static void zip(String src, String archive, String comment)
throws FileNotFoundException, IOException {
// ----压缩文件:
FileOutputStream f = new FileOutputStream(archive);
// 使用指定校验和创建输出流
CheckedOutputStream csum = new CheckedOutputStream(f, new CRC32());
ZipOutputStream zos = new ZipOutputStream(csum);
// 支持中文
zos.setEncoding(encoding);
BufferedOutputStream out = new BufferedOutputStream(zos);
// 设置压缩包注释
zos.setComment(comment);
// 启用压缩
zos.setMethod(ZipOutputStream.DEFLATED);
// 压缩级别为最强压缩,但时间要花得多一点
zos.setLevel(Deflater.BEST_COMPRESSION);
File srcFile = new File(src);
if (!srcFile.exists() || (srcFile.isDirectory() && srcFile.list().length == 0)) {
out.close();
throw new FileNotFoundException(
"File must exist and ZIP file must have at least one entry.");
}
// 获取压缩源所在父目录
src = src.replaceAll("\\\\", "/");
String prefixDir = null;
if (srcFile.isFile()) {
prefixDir = src.substring(0, src.lastIndexOf("/") + 1);
} else {
prefixDir = (src.replaceAll("/$", "") + "/");
}
// 如果不是根目录
if (prefixDir.indexOf("/") != (prefixDir.length() - 1) && isCreateSrcDir) {
prefixDir = prefixDir.replaceAll("[^/]+/$", "");
}
// 开始压缩
saveZipFile(zos, out, srcFile, prefixDir);
out.close();
// 注:校验和要在流关闭后才准备,一定要放在流被关闭后使用
logger.debug("Checksum: " + csum.getChecksum().getValue());
}