导航:首页 > 文件处理 > java下载压缩文件

java下载压缩文件

发布时间:2022-04-18 06:41:35

java 先根据一个list生成一个文件,然后在压缩下载怎么实现

编码思路
(一)封装list集合信息使之输出到txt、excel等文件中;
(二)通过ZipOutputStream实现对文件压缩操作;
(三)使用HttpServlet提供与用户进行下载,下载完成后,删除文件。

㈡ java完成批量下载时,压缩文件怎么命名

看你的代码应该下载zip文件,对应的contentType 是application/x-zip-compressed

getResponse().setContentType("application/octet-stream");修改为getResponse().setContentType("application/x-zip-compressed");

㈢ java 下载异地FTP中的zip文件

这个要做定时任务的,ftp不可能主动给你发,只能自己每隔多长时间就去检索一次,应该把ftp文件目录结构和文件名称全部存入数据库,在下载时候对文件的标识状态位进行更新,方便于对文件的判断。然后从ftp下载文件即可。如果需要连接ftp下载文件的代码,可以发送邮件到[email protected]

㈣ java 如何压缩文件

楼主是说解压了的文件大小只有33.1MB,但是却占了51.2MB的空间吗?
如果是这个意思的话,那我要告诉楼主,首先这个问题和JAVA没有关系,根据你的截图,可以断定你用的是FAT32文件系统。这只是文件存储的形式,很正常。
简单的说,磁盘存储数据的最小单位是簇,比方说你的簇大小为128K,一个簇只能存放一个文件,然后你的一个文件只有16K,它占了这个簇,然后还有112K没有用,是吧。但是那112K就不能再存放其它文件了。如果要存放其它文件,就要占另一个簇。
楼主,懂了吧,这跟簇的大小有关,但是也不是簇越小越好,簇越小,读写性能都有所下降。这是正常现象。如果你非觉得不舒服,那就用NTFS文件系统吧,把压缩打开,就不会有这种情况了,希望对你有帮助

㈤ java怎么下载压缩文件

可以用java的输入,输出流,设置返回的类型为下转
response.setContentType("application/x-download");//设置为下载application/x-download
String filedownload = "/要下载的文件名";//即将下载的文件的相对路径
String filedisplay = "最终要显示给用户的保存文件名";//下载文件时显示的文件保存名称
String filenamedisplay = URLEncoder.encode(filedisplay,"UTF-8");
response.addHeader("Content-Disposition","attachment;filename=" + filedisplay);

㈥ 如何使用java压缩文件夹成为zip包

在JDK中有一个zip工具类:

java.util.zip Provides classes for reading and writing the standard ZIP and
GZIP file formats.

使用此类可以将文件夹或者多个文件进行打包压缩操作。

在使用之前先了解关键方法:

ZipEntry(String name) Creates a new zip entry with the specified name.

使用ZipEntry的构造方法可以创建一个zip压缩文件包的实例,然后通过ZipOutputStream将待压缩的文件以流的形式写进该压缩包中。具体实现代码如下:

importjava.io.BufferedInputStream;
importjava.io.BufferedOutputStream;
importjava.io.File;
importjava.io.FileInputStream;
importjava.io.FileNotFoundException;
importjava.io.FileOutputStream;
importjava.io.IOException;
importjava.util.zip.ZipEntry;
importjava.util.zip.ZipOutputStream;
/**
*将文件夹下面的文件
*打包成zip压缩文件
*
*@authoradmin
*
*/
publicfinalclassFileToZip{

privateFileToZip(){}

/**
*将存放在sourceFilePath目录下的源文件,打包成fileName名称的zip文件,并存放到zipFilePath路径下
*@paramsourceFilePath:待压缩的文件路径
*@paramzipFilePath:压缩后存放路径
*@paramfileName:压缩后文件的名称
*@return
*/
publicstaticbooleanfileToZip(StringsourceFilePath,StringzipFilePath,StringfileName){
booleanflag=false;
FilesourceFile=newFile(sourceFilePath);
FileInputStreamfis=null;
BufferedInputStreambis=null;
FileOutputStreamfos=null;
ZipOutputStreamzos=null;

if(sourceFile.exists()==false){
System.out.println("待压缩的文件目录:"+sourceFilePath+"不存在.");
}else{
try{
FilezipFile=newFile(zipFilePath+"/"+fileName+".zip");
if(zipFile.exists()){
System.out.println(zipFilePath+"目录下存在名字为:"+fileName+".zip"+"打包文件.");
}else{
File[]sourceFiles=sourceFile.listFiles();
if(null==sourceFiles||sourceFiles.length<1){
System.out.println("待压缩的文件目录:"+sourceFilePath+"里面不存在文件,无需压缩.");
}else{
fos=newFileOutputStream(zipFile);
zos=newZipOutputStream(newBufferedOutputStream(fos));
byte[]bufs=newbyte[1024*10];
for(inti=0;i<sourceFiles.length;i++){
//创建ZIP实体,并添加进压缩包
ZipEntryzipEntry=newZipEntry(sourceFiles[i].getName());
zos.putNextEntry(zipEntry);
//读取待压缩的文件并写进压缩包里
fis=newFileInputStream(sourceFiles[i]);
bis=newBufferedInputStream(fis,1024*10);
intread=0;
while((read=bis.read(bufs,0,1024*10))!=-1){
zos.write(bufs,0,read);
}
}
flag=true;
}
}
}catch(FileNotFoundExceptione){
e.printStackTrace();
thrownewRuntimeException(e);
}catch(IOExceptione){
e.printStackTrace();
thrownewRuntimeException(e);
}finally{
//关闭流
try{
if(null!=bis)bis.close();
if(null!=zos)zos.close();
}catch(IOExceptione){
e.printStackTrace();
thrownewRuntimeException(e);
}
}
}
returnflag;
}

publicstaticvoidmain(String[]args){
StringsourceFilePath="D:\TestFile";
StringzipFilePath="D:\tmp";
StringfileName="12700153file";
booleanflag=FileToZip.fileToZip(sourceFilePath,zipFilePath,fileName);
if(flag){
System.out.println("文件打包成功!");
}else{
System.out.println("文件打包失败!");
}
}

}

㈦ 急!!!想实现通过java方式压缩文件并提供下载功能,在线等!!!

给你一个代码吧。
/**
* 文件夹压缩。输入路径不能与输出路径相同
* zip("c:\\webserver\\test.zip","c:\\test1");
* @param zipFileName
* @param inputFile
* @throws Exception
*/
public static void zipFold(String zipFileName,String inputFilePath)throws Exception{
zip(zipFileName,new File(inputFilePath));
}

private static void zip(String zipFileName,File inputFile)throws Exception{
ZipOutputStream out=new ZipOutputStream(new FileOutputStream(zipFileName));
zipFold(out,inputFile,"");
out.close();
}

private static void zipFold(ZipOutputStream out,File f,String base)throws Exception{
if (f.isDirectory())
{
File[] fl=f.listFiles();
base=base.length()==0?"":base+"/";
for (int i=0;i<fl.length ;i++ )
{
zipFold(out,fl[i],base+fl[i].getName());
}
}
else
{
out.putNextEntry(new ZipEntry(base));
FileInputStream in=new FileInputStream(f);
int b;
while ((b=in.read()) != -1)
out.write(b);
in.close();
}
}

㈧ java 怎么下载压缩文件

服务器生成压缩文件,执行下载。

㈨ JAVA 批量下载.zip

/**
* 报表查询模块 ----文件下载流
* @return
* @throws IOException
*/
public InputStream getInputStream() throws IOException {
InputStream ins = new FileInputStream(zipReports());
return ins;
}

/**
* 根据传过来的报表编号压缩文件为zip
* @param response
* @param serverPath
* @param str
* @throws IOException
*/
public File zipReports() throws IOException{
List<StatisticalReport> srclist = new ArrayList<StatisticalReport>();
String[] pks = ids.split(",");
if(pks.length > 0){
for(String pk : pks){
String[] str = pk.split("\\|");
StatisticalReport obj = new StatisticalReport();
obj.setCendat(str[0]);
obj.setOrgidt(str[1]);
obj.setRep_code(str[2]);
obj.setCurcde(str[3]);
srclist.add(obj);
}
}
StatisticalReport obj = new StatisticalReport();
obj.setReportList(srclist);
//查询要下载的报表文件
List<StatisticalReport> list = statisticalReportService.findReportList(obj);
//获取应用在服务器上的根目录
String path = request.getSession().getServletContext().getRealPath(System.getProperty("file.separator"));
List<File> srcList = new ArrayList<File>();
if(list.size() > 0){
for(StatisticalReport statisticalReport : list){
File file = new File(statisticalReport.getFile_path());
if(file.exists()){
srcList.add(file);
}
}
}

Pim_sysUser user = (Pim_sysUser) session.getAttribute(SysConstant.SESSION_USER_DATA);
File zipfile = new File(path + System.getProperty("file.separator") + user.getLogid() + "REPORT.zip");
if(zipfile.exists()){
zipfile.delete();
zipfile.createNewFile();
}
//FileTools.File(, res.getString("help_path"), newFormatFileName);// 上传文件
ZipUtils.zipFiles(srcList, zipfile);
return zipfile;
}

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.List;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
public class ZipUtils {
/**
* 将多个Excel打包成zip文件
*
* @param srcfile
* @param zipfile
*/
public static void zipFiles(List<File> srcfile, File zipfile) {
byte[] buf = new byte[2048];
try {
// Create the ZIP file
// Compress the files
if(srcfile.size() > 0){
// 创建ZipOutputStream类对象
ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipfile));
for (int i = 0; i < srcfile.size(); i++) {
File file = srcfile.get(i);
FileInputStream in = new FileInputStream(file);
// Add ZIP entry to output stream.
out.putNextEntry(new ZipEntry(file.getName()));// 写入此目录的Entry 创建新的进入点
// Transfer bytes from the file to the ZIP file
int len;
while ((len = in.read(buf)) > 0) {
out.setLevel(9);
out.write(buf, 0, len);
}
// Complete the entry
out.closeEntry();
in.close();
}
out.close();
}else{
ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipfile));
out.putNextEntry(new ZipEntry(" "));
out.closeEntry();
out.close();
}
// Complete the ZIP file
} catch (IOException e) {
e.printStackTrace();
}
}
}

㈩ 下载手机JAVA压缩文件应该下载在手机哪个文件夹里面

用不同的游览器,所自动建立默认的文件夹也不同,那么你上网下载的任何文件都会自动放入默认的文件夹里,可是你删掉默认文件夹,它又会自己分类:如图片会自动放入Images文件夹里,音乐会自动放入Sounds文件夹里,视频会自动放入Videos文件夹里,还有其它的(主题,软件,游戏等)就自动放入Others文件夹里,我个人建议把游览器默认的文件夹删掉好,这样一来,下载下来的文件最基本有90%以上它帮你分类了,一来方便自己查想要找的文件,二来自己的手机的文件分配的整整有理。还有,我建议用UC6.1上网,根据我亲自研究,6.1的比6.2以上的都要好,网速比较稳定,连接端口比较快,6.1唯一比它们差的就是画面切换快,其实有时候追求最新的也不一定是最好的,我相信大家要的不是新的外表,而是追求完美的系统搭配和网上冲浪感觉!我试调试过UC6.1的网速,最高可以89KB/S,到92KB/S好少能到,我手机现在最少都可以43.几KB/S。而UC6.2就最高36.几KB/S,我已经调到封顶了。如果那位玩机的朋友,想了解更多手机S60V2/S60V3系统,软件的。我的回答完了,谢谢!

阅读全文

与java下载压缩文件相关的资料

热点内容
怎么用qq浏览器整体解压文件 浏览:584
肺组织压缩15 浏览:269
安卓手机为什么换电话卡没反应 浏览:795
诸子集成pdf 浏览:338
php注册框代码 浏览:716
手机加密好还是不加好好 浏览:814
别克凯越压缩机泵头多钱 浏览:241
组管理命令 浏览:980
海南高德司机端是什么app 浏览:861
pid命令 浏览:888
一天一图学会python可视化 浏览:309
魔兽编辑文本命令串 浏览:497
android中view绘制 浏览:798
安卓机内存删除怎么恢复 浏览:331
Qt环境的编译软件放到linux 浏览:214
联创打印系统怎么连接服务器 浏览:937
杭州行政命令 浏览:160
如何查找服务器日志 浏览:801
加密的钥匙扣怎么写 浏览:579
文件夹更新不了怎么办 浏览:475