java文件解压代码 Java解压

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

40.ZIP压缩文件

创新互联主营宁江网站建设的网络公司,主营网站建设方案,重庆APP软件开发,宁江h5微信小程序开发搭建,宁江网站营销推广欢迎宁江等地区企业咨询

/*

import java.io.*;

import java.util.zip.*;

*/

//创建文件输入流对象

FileInputStream fis=new FileInputStream(%%1);

//创建文件输出流对象

FileOutputStream fos=new FileOutputStream(%%2);

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

ZipOutputStream zipOut=new ZipOutputStream(fos);

//创建指向压缩原始文件的入口

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

zipOut.putNextEntry(entry);

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

int nNumber;

byte[] buffer=new byte[1024];

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

zipOut.write(buffer,0,nNumber);

//关闭创建的流对象

zipOut.close();

fos.close();

fis.close();

}

catch(IOException e)

{

System.out.println(e);

}

41.获得应用程序完整路径

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

42.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[1024];

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);

}

43.递归删除目录中的文件

/*

import java.io.*;

import java.util.*;

*/

ArrayListString folderList = new ArrayListString();

folderList.add(%%1);

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

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

File[] files = file.listFiles();

ArrayListFile fileList = new ArrayListFile();

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();

}

}

43.ZIP压缩文件夹

/*

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();

}

/*

切,我刚好写了个压缩的,但没写解压的

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[1024];

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[1024];

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;iargSize;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());

}

}

}

*/

如何用java代码调用解压工具去解压.exe文件

再 windows下通过 cmd命令执行解压缩没问题,但是通过 java代码去执行不能解压是为什么?我在开始运行中输入命令: cmd/ c rar. exe x- y d:\\ auto. rar d:\\----上面命令可以解压成功,但是通过下面 java代码不能实现解压缩功能,请指点。主要代码: java. lang. Runtime. getRuntime(). exec(" cmd/ c rar. exe x- y d:\\ auto. rar d:\\");

再 windows下通过 cmd命令执行解压缩没问题,但是通过 java代码去执行不能解压是为什么?我在开始运行中输入命令: cmd/ c rar. exe x- y d:\\ auto. rar d:\\----上面命令可以解压成功,但是通过下面 java代码不能实现解压缩功能,请指点。主要代码: java. lang. Runtime. getRuntime(). exec(" cmd/ c rar. exe x- y d:\\ auto. rar d:\\");

java中怎么解压rar文件 到指定文件目录中

1.代码如下:

[java] view plain copy

span style="font-size:18px;background-color: rgb(204, 204, 204);"package cn.gov.csrc.base.util;

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("文件打包失败!");

}

}

}

/span

2.结果如下:

文件打包成功!

3.到D:/tmp下查看,你会发现生成了一个zip压缩包.

关于Java的解压缩的代码?

package com.javatest.techzero.gui;  

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.InputStream;

import java.io.OutputStream;

import java.util.zip.ZipEntry;

import java.util.zip.ZipFile;

import java.util.zip.ZipInputStream; 

public class ZipFileDemo {

@SuppressWarnings("resource")

public static void main(String args[]) throws Exception {

File file = new File("d:" + File.separator + "test.zip");

File outFile = null;

ZipFile zipFile = new ZipFile(file);

ZipInputStream zipInput = new ZipInputStream(new FileInputStream(file));

ZipEntry entry = null;

InputStream input = null;

OutputStream out = null;

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

System.out.println("开始解压缩" + entry.getName() + "文件。。。");

outFile = new File("d:" + File.separator + entry.getName());

if (!outFile.getParentFile().exists()) {

outFile.getParentFile().mkdir();

}

if (!outFile.exists()) {

outFile.createNewFile();

}

input = zipFile.getInputStream(entry);

out = new FileOutputStream(outFile);

int temp = 0;

while ((temp = input.read()) != -1) {

SPAN style="WHITE-SPACE: pre" /SPAN//System.out.println(temp);

out.write(temp);

}

input.close();

out.close();

}

System.out.println("Done!");

}

}

仅供参考

java中怎么用cmd命令解压zip文件

对于zip文件,java有自带类库java.util.zip;可是要想解压rar文件只能靠第三方类库,我试过两个:com.github.junrar和de.innosystec.unrar,前者解压时可能会出现crcError,后者pom配置时报错;利用cmd命令调用winRAR进行解压,无疑方便快捷很多。

调用cmd命令

public static boolean exe(String cmd) {

Runtime runtime = Runtime.getRuntime();        try {

Process p = runtime.exec(cmd);

BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream(),"GBK"));

String line = reader.readLine();            while(line!=null) {

logger.info(line);

line = reader.readLine();

}

reader.close();            if(p.waitFor()!=0) {                return false;

}

} catch (IOException e) {            // TODO Auto-generated catch block

e.printStackTrace();

} catch (InterruptedException e) {            // TODO Auto-generated catch block

e.printStackTrace();

}        return true;

}123456789101112131415161718192021222324

首先利用runtime.exec()执行指令,得到process,从process.getInputStream()中获取回显字符并打印,打印回显时可能会出现中文乱码,这个和操作系统编码有关,我这里是GBK编码,所以在new inputstreamReader时加入了编码参数”GBK“

命令行字符串

如果需要调用cmd命令,如cd等,可写”cmd \c cd 目录”。对于直接调用exe执行,则可以写成”exe文件绝对路径 参数”,在命令行字符串中,含有空格的路径或者字符串应该再加上引号,即”\”exe文件绝对路径\” \”参数\”“

winRAR调用

我这里安装目录是C:/Program Files/WinRAR,将D:\1.rar 解压到D:,则写成”\”C:/Program Files/WinRAR/unRar.exe\” x -y D:/1.rar D:/”,x代表绝对路径解压,-y表示全部确定;压缩的命令如下:“\”C:/Program Files/WinRAR/rar.exe\” a -ep1 D:\2.rar D:\源目录”,a表示添加文件到压缩文件,-ep1表示排除基本目录,如D:\winrar\rar这个目录,如果没有-ep1那么压缩包中会出现winrar目录路径,而加了之后就只将当前目录打包,只有rar目录


分享文章:java文件解压代码 Java解压
文章网址:http://ybzwz.com/article/hgshdd.html