「java压缩文件并下载」java压缩包下载

博主:adminadmin 2022-11-24 15:26:08 55

今天给各位分享java压缩文件并下载的知识,其中也会对java压缩包下载进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

java 如何将多个文件打包成一个zip后进行下载

打包压缩的如下:

ZipOutputStream out=new ZipOutputStream(new FileOutputStream(zipFileName));

for(int i=0;ifileList.size();i++){

String filename = (String)fileList.get(i);

File file = new File(filename);

zip(out,file);

}

out.close();

下载的如下:

private int blockSize=65000;

File file = new File(sourceFilePathName);

FileInputStream fileIn = new FileInputStream(file);

int readBytes = 0;

readBytes = fileIn.read(b, 0, blockSize);

totalRead += readBytes;

out.write(b, 0, readBytes);

代码大致如此,请参考。

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将待压缩的文件以流的形式写进该压缩包中。具体实现代码如下:

import java.io.BufferedInputStream;  

import java.io.BufferedOutputStream;  

import java.io.File;  

import java.io.FileInputStream;  

import java.io.FileNotFoundException;  

import java.io.FileOutputStream;  

import java.io.IOException;  

import java.util.zip.ZipEntry;  

import java.util.zip.ZipOutputStream;  

/** 

 * 将文件夹下面的文件 

 * 打包成zip压缩文件 

 *  

 * @author admin 

 * 

 */  

public final class FileToZip {  

  

    private FileToZip(){}  

      

    /** 

     * 将存放在sourceFilePath目录下的源文件,打包成fileName名称的zip文件,并存放到zipFilePath路径下 

     * @param sourceFilePath :待压缩的文件路径 

     * @param zipFilePath :压缩后存放路径 

     * @param fileName :压缩后文件的名称 

     * @return 

     */  

    public static boolean fileToZip(String sourceFilePath,String zipFilePath,String fileName){  

        boolean flag = false;  

        File sourceFile = new File(sourceFilePath);  

        FileInputStream fis = null;  

        BufferedInputStream bis = null;  

        FileOutputStream fos = null;  

        ZipOutputStream zos = null;  

          

        if(sourceFile.exists() == false){  

            System.out.println("待压缩的文件目录:"+sourceFilePath+"不存在.");  

        }else{  

            try {  

                File zipFile = new File(zipFilePath + "/" + fileName +".zip");  

                if(zipFile.exists()){  

                    System.out.println(zipFilePath + "目录下存在名字为:" + fileName +".zip" +"打包文件.");  

                }else{  

                    File[] sourceFiles = sourceFile.listFiles();  

                    if(null == sourceFiles || sourceFiles.length1){  

                        System.out.println("待压缩的文件目录:" + sourceFilePath + "里面不存在文件,无需压缩.");  

                    }else{  

                        fos = new FileOutputStream(zipFile);  

                        zos = new ZipOutputStream(new BufferedOutputStream(fos));  

                        byte[] bufs = new byte[1024*10];  

                        for(int i=0;isourceFiles.length;i++){  

                            //创建ZIP实体,并添加进压缩包  

                            ZipEntry zipEntry = new ZipEntry(sourceFiles[i].getName());  

                            zos.putNextEntry(zipEntry);  

                            //读取待压缩的文件并写进压缩包里  

                            fis = new FileInputStream(sourceFiles[i]);  

                            bis = new BufferedInputStream(fis, 1024*10);  

                            int read = 0;  

                            while((read=bis.read(bufs, 0, 1024*10)) != -1){  

                                zos.write(bufs,0,read);  

                            }  

                        }  

                        flag = true;  

                    }  

                }  

            } catch (FileNotFoundException e) {  

                e.printStackTrace();  

                throw new RuntimeException(e);  

            } catch (IOException e) {  

                e.printStackTrace();  

                throw new RuntimeException(e);  

            } finally{  

                //关闭流  

                try {  

                    if(null != bis) bis.close();  

                    if(null != zos) zos.close();  

                } catch (IOException e) {  

                    e.printStackTrace();  

                    throw new RuntimeException(e);  

                }  

            }  

        }  

        return flag;  

    }  

      

    public static void main(String[] args){  

        String sourceFilePath = "D:\\TestFile";  

        String zipFilePath = "D:\\tmp";  

        String fileName = "12700153file";  

        boolean flag = FileToZip.fileToZip(sourceFilePath, zipFilePath, fileName);  

        if(flag){  

            System.out.println("文件打包成功!");  

        }else{  

            System.out.println("文件打包失败!");  

        }  

    }  

      

}

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

编码思路

(一)封装list集合信息使之输出到txt、excel等文件中;

(二)通过ZipOutputStream实现对文件压缩操作;

(三)使用HttpServlet提供与用户进行下载,下载完成后,删除文件。

急!!!想实现通过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;ifl.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压缩包下载的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-11-24,除非注明,否则均为首码项目网原创文章,转载请注明出处。