hutool工具包可以帮我们完成这件事,几行代码可以实现,我们提供两种方式,压缩本地文件和压缩内存流。
@Test
public void zip(){
String entryName = "d:\codegen\1";
String zipFilePath = "d:\codegen\example.zip";
// 将entryName这个文件或者目录,压缩成zipFilePath这个zip文件
ZipUtil.zip(entryName,zipFilePath, true);
}
@Test
public void zipStream() throws IOException {
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
ZipOutputStream zip = new ZipOutputStream(outputStream);
zip.putNextEntry(new ZipEntry(Objects.requireNonNull("1.txt")));
IoUtil.write(zip, StandardCharsets.UTF_8, false, "hello world.");
zip.closeEntry();
IoUtil.close(zip);//这个需要在IoUtil.write的上面,即先关闭zip流,再写文件,否则会报错
IoUtil.write(FileUtil.getOutputStream("d:\codegen\hello.zip"), Boolean.TRUE, outputStream.toByteArray());
}
扩展阅读:如果希望进行模版技术,可以看一下org.apache.velocity.tools:velocity-tools-generic包,可直接引用依赖
*版本
2.3
3.1
org.apache.velocity
velocity-engine-core
${velocity.version}
org.apache.velocity.tools
velocity-tools-generic
${velocity.tool.version}
org.apache.velocity 是 Apache Velocity 模板引擎的 Java 实现。Velocity 是一个用于简化创建模板驱动文本生成的工具,它可以帮助你将数据和模板进行结合,生成最终的文本输出。以下是关于 org.apache.velocity 的一些作用和用法:
下面是一个简单的示例,演示了如何在 Java 中使用 Apache Velocity:
import org.apache.velocity.app.VelocityEngine;
import org.apache.velocity.Template;
import org.apache.velocity.VelocityContext;
import java.io.StringWriter;
public class VelocityExample {
public static void main(String[] args) {
// 初始化 Velocity 引擎
VelocityEngine velocityEngine = new VelocityEngine();
velocityEngine.init();
// 准备数据
VelocityContext context = new VelocityContext();
context.put("name", "World");
// 获取模板
Template template = velocityEngine.getTemplate("hello.vm");
// 合并模板
StringWriter writer = new StringWriter();
template.merge(context, writer);
// 输出结果
System.out.println(writer.toString());
}
}
在这个示例中,我们使用了 VelocityEngine 来初始化 Velocity 引擎,然后创建了一个 VelocityContext 对象来存储模板所需的数据。接着,我们获取了一个名为 "hello.vm" 的模板,并将数据和模板进行合并,最终将结果输出到控制台。
希望这能帮助你理解 org.apache.velocity 的作用和基本用法。如果有其他问题,欢迎随时向我提问。
登录查看全部
参与评论
手机查看
返回顶部