本站提倡有节制游戏,合理安排游戏时间,注意劳逸结合。

【T十O源码】【解迷宫源码】【ctf 平台源码】java zip源码

2024-11-21 01:34:38 来源:综合 分类:综合

1.用java小应用程序实现文件压缩、解压缩?

java zip源码

用java小应用程序实现文件压缩、解压缩?

       .ZIP压缩文件

       /

*

       import java.io.*;

       import java.util.zip.*;

       */

       //创建文件输入流对象

       FileInputStream fis=new FileInputStream(%%1);

       //创建文件输出流对象

       FileOutputStream fos=new FileOutputStream(%%2);

       //创建ZIP数据输出流对象

       ZipOutputStream zipOut=new ZipOutputStream(fos);

       //创建指向压缩原始文件的T十O源码入口

       ZipEntry entry=new ZipEntry(args[0]);

       zipOut.putNextEntry(entry);

       //向压缩文件中输出数据

       int nNumber;

       byte[] buffer=new byte[];

       while((nNumber=fis.read(buffer))!=-1)

       zipOut.write(buffer,0,nNumber);

       //关闭创建的流对象

       zipOut.close();

       fos.close();

       fis.close();

       }

       catch(IOException e)

       {

       System.out.println(e);

       }

       .获得应用程序完整路径

       String %%1=System.getProperty("user.dir");

       .ZIP解压缩

       /

*

       import java.io.*;

       import java.util.zip.*;

       */

       try{

       //创建文件输入流对象实例

       FileInputStream fis=new FileInputStream(%%1);

       //创建ZIP压缩格式输入流对象实例

       ZipInputStream zipin=new ZipInputStream(fis);

       //创建文件输出流对象实例

       FileOutputStream fos=new FileOutputStream(%%2);

       //获取Entry对象实例

       ZipEntry entry=zipin.getNextEntry();

       byte[] buffer=new byte[];

       int nNumber;

       while((nNumber=zipin.read(buffer,0,buffer.length))!=-1)

       fos.write(buffer,0,nNumber);

       //关闭文件流对象

       zipin.close();

       fos.close();

       fis.close();

       }

       catch(IOException e) {

       System.out.println(e);

       }

       .递归删除目录中的文件

       /

*

       import java.io.*;

       import java.util.*;

       */

       ArrayList<String> folderList = new ArrayList<String>();

       folderList.add(%%1);

       for (int j = 0; j < folderList.size(); j++) {

       File file = new File(folderList.get(j));

       File[] files = file.listFiles();

       ArrayList<File> fileList = new ArrayList<File>();

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

       if (files[i].isDirectory()) {

       folderList.add(files[i].getPath());

       } else {

       fileList.add(files[i]);

       }

       }

       for (File f : fileList) {

       f.delete();

       }

       }

       .ZIP压缩文件夹

       /

*

       /index.jsp

       import java.io.*;

       import org.apache.tools.zip.ZipOutputStream; //这个包在ant.jar里,要到官方网下载

       //java.util.zip.ZipOutputStream

       import java.util.zip.*;

       */

       try {

       String zipFileName = %%2; //打包后文件名字

       File f=new File(%%1);

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

       String base= "";

       if (f.isDirectory()) {

        File[] fl = f.listFiles();

        out.putNextEntry(new org.apache.tools.zip.ZipEntry(base + "/"));

        base = base.length() == 0 ? "" : base + "/";

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

        zip(out, fl[i], base + fl[i].getName());

       }

       }else {

        out.putNextEntry(new org.apache.tools.zip.ZipEntry(base));

        FileInputStream in = new FileInputStream(f);

        int b;

        while ( (b = in.read()) != -1) {

        out.write(b);

       }

       in.close();

       }

       out.close();

       }catch (Exception ex) {

        ex.printStackTrace();

       }

       /

*

       切,我刚好写了个压缩的解迷宫源码,但没写解压的ctf 平台源码

       1. 解压的(参数两个,第一个是你要解压的zip文件全路径,第二个是你解压之后要存放的位置)

       /

*

       import java.io.File;

       import java.io.FileInputStream;

       import java.io.FileOutputStream;

       import java.io.IOException;

       import java.util.zip.ZipEntry;

       import java.util.zip.ZipInputStream;

       */

       public class ZipFileList {

        public static void main(String[] args) {

        extZipFileList(args[0],args[1]);

        }

        private static void extZipFileList(String zipFileName, String extPlace) {

        try {

        ZipInputStream in = new ZipInputStream(new FileInputStream(

        zipFileName));

        ZipEntry entry = null;

        while ((entry = in.getNextEntry()) != null) {

        String entryName = entry.getName();

        if (entry.isDirectory()) {

        File file = new File(extPlace + entryName);

        file.mkdirs();

        System.out.println("创建文件夹:" + entryName);

        } else {

        FileOutputStream os = new FileOutputStream(extPlace

        + entryName);

        // Transfer bytes from the ZIP file to the output file

        byte[] buf = new byte[];

        int len;

        while ((len = in.read(buf)) > 0) {

        os.write(buf, 0, len);

        }

        os.close();

        in.closeEntry();

        }

        }

        } catch (IOException e) {

        }

        System.out.println("解压文件成功");

        }

       }

       压缩的(参数最少传两个,第一个是你压缩之后的文件存放的位置以及名字,第二个是你要压缩的文件或者文件夹所在位置,也可以传多个文件或文件夹)

       import java.io.File;

       import java.io.FileInputStream;

       import java.io.FileOutputStream;

       import java.io.IOException;

       import java.util.ArrayList;

       import java.util.Calendar;

       import java.util.List;

       import java.util.zip.ZipEntry;

       import java.util.zip.ZipOutputStream;

       public class ZipFileOther {

        public static String zipFileProcess(ArrayList outputZipFileNameList, String outputZipNameAndPath) {

        ArrayList fileNames = new ArrayList();

        ArrayList files = new ArrayList();

        FileOutputStream fileOut = null;

        ZipOutputStream outputStream = null;

        FileInputStream fileIn = null;

        StringBuffer sb = new StringBuffer(outputZipNameAndPath);

        // FileInputStream fileIn =null;

        try {

        if (outputZipNameAndPath.indexOf(".zip") != -1) {

        outputZipNameAndPath = outputZipNameAndPath;

        } else {

        sb.append(".zip");

        outputZipNameAndPath = sb.toString();

        }

        fileOut = new FileOutputStream(outputZipNameAndPath);

        outputStream = new ZipOutputStream(fileOut);

        int outputZipFileNameListSize = 0;

        if (outputZipFileNameList != null) {

        outputZipFileNameListSize = outputZipFileNameList.size();

        }

        for (int i = 0; i < outputZipFileNameListSize; i++) {

        File rootFile = new File(outputZipFileNameList.get(i).toString());

        listFile(rootFile, fileNames, files, "");

        }

        for (int loop = 0; loop < files.size(); loop++) {

        fileIn = new FileInputStream((File) files.get(loop));

        outputStream.putNextEntry(new ZipEntry((String) fileNames.get(loop)));

        byte[] buffer = new byte[];

        while (fileIn.read(buffer) != -1) {

        outputStream.write(buffer);

        }

        outputStream.closeEntry();

        fileIn.close();

        }

        return outputZipNameAndPath;

        } catch (IOException ioe) {

        return null;

        } finally {

        if (outputStream != null) {

        try {

        outputStream.close();

        } catch (IOException e) {

        }

        }

        if (fileIn != null) {

        try {

        fileIn.close();

        } catch (IOException e) {

        }

        }

        }

        }

        public static void main(String[] args) {

        ArrayList outputZipFileName=new ArrayList();

        String savePath="";

        int argSize = 0;

        if (args != null) {

        argSize = args.length;

        }

        if (argSize > 1) {

        if(args[0]!=null)

        savePath = args[0];

        for(int i=1;i<argSize;i++){

        if(args[i]!=null){

        outputZipFileName.add(args[i]);

        }

        }

        ZipFileOther instance=new ZipFileOther();

        instance.zipFileProcess(outputZipFileName,savePath);

        } else {

        }

        }

        private static void listFile(File parentFile, List nameList, List fileList, String directoryName) {

        if (parentFile.isDirectory()) {

        File[] files = parentFile.listFiles();

        for (int loop = 0; loop < files.length; loop++) {

        listFile(files[loop], nameList, fileList, directoryName + parentFile.getName() + "/");

        }

        } else {

        fileList.add(parentFile);

        nameList.add(directoryName + parentFile.getName());

        }

        }

       }

       */

相关推荐
一周热点