我当然想知道如何使用java在网上压缩文件。
我知道如何为硬盘驱动器上的目录执行此操作,但不知道如何对网站执行此操作:
ZipFile zipfile = new ZipFile("C:/Documents and Settings/User/desktop/something.file");
非常感谢。
答案 0 :(得分:1)
所以我认为你想下载并压缩文件。这是两个不同的任务,所以你需要做两件事:
我建议您使用Apache HttpComponents下载文件,并Apache Compress进行压缩。
然后代码会像这样......
// Obtain reference to file
HttpGet httpGet = new HttpGet("http://blahblablah.com/file.txt");
HttpResponse httpResponse = httpclient.execute(httpGet);
HttpEntity httpEntity = httpResponse.getEntity();
// Create the output ZIP file
ZipArchiveOutputStream zip = new ZipArchiveOutputStream(zipFile);
try {
// Write a file header in the .zip file
ArchiveEntry entry = new ZipArchiveEntry("file.txt");
zip.putArchiveEntry(entry);
// Download the file and write it to a compressed file
IOUtils.copy(httpEntity.getContent(), zip);
// The file is now written
zip.closeArchiveEntry();
} finally {
// Ensure output file is closed
zip.close();
}
它是如何工作的? HttpComponents正在获取文件的InputStream
,而Compress正在提供OutputStream
。然后你只是从一个流复制到另一个流。这就像魔术!
答案 1 :(得分:0)
它是一样的,但你必须使用几种方法:
String filePath = getServletContext().getRealPath("/WEB-INF/your_folder/your_file");
filepath是绝对文件系统路径(C:/.../ WEB-INF / your_folder / your_file)
答案 2 :(得分:0)
通过'压缩网络上的文件',听起来像是指在网络或应用服务器的代码中以编程方式执行此操作。
此页面可能有所帮助。它讨论了如何使用java.util.zip包:http://java.sun.com/developer/technicalArticles/Programming/compression/