Java - 从网站压缩文件?
我只是想知道如何使用java压缩网上的文件,当然。Java - 从网站压缩文件?
我知道如何为硬盘驱动器上的目录做到这一点,而不是网站:
ZipFile zipfile = new ZipFile("C:/Documents and Settings/User/desktop/something.file");
非常感谢你。
回答:
这是相同的,但你必须使用两个方法:
String filePath = getServletContext().getRealPath("/WEB-INF/your_folder/your_file");
filepath是绝对的文件系统路径(C:/.../ WEB-INF /您的文件夹/ your_file)
回答:
通过'在网上压缩文件'这听起来像你的意思是在网页或应用程序服务器的代码中以编程方式进行编程。
此页面可能会有帮助。它讨论了如何使用java.util.zip包:http://java.sun.com/developer/technicalArticles/Programming/compression/
回答:
所以我认为你要下载和压缩一个文件。这是两个不同的任务,所以你需要两样东西做到这一点:
- 东西,从网络上下载的文件
- 东西把它压缩成zip文件
我建议你使用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
。那么你只是从一个流复制到另一个流。这就像魔术一样!
以上是 Java - 从网站压缩文件? 的全部内容, 来源链接: utcz.com/qa/258034.html