首页编程java编程java下载zip文件(java安装包下载)

java下载zip文件(java安装包下载)

编程之家2026-05-28747次浏览

其实java下载zip文件的问题并不复杂,但是又很多的朋友都不太了解java安装包下载,因此呢,今天小编就来为大家分享java下载zip文件的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

java下载zip文件(java安装包下载)

java怎么读取Zip和RAR里面的文件啊

ZipInputStream是一个指向ZIP文件的流,这个流最重要的方法就是getNextEntry方法,一个zip文件可以包含好几个被压缩的文件,这个方法的功能就是返回下一个目录项,也就是返回zip文件中的下一项,并且把流指向这个目录文件项。getNextEntry的返回值是ZipEntry,它表示zip文件中的一个项,它可以返回这个文件项的大小、名称等。你可以根据它返回的文件大小调用ZipInputStream的read方法来读取需要的字节。给你一个例子:public class ZipTest{

public static void main(String args[]) throws FileNotFoundException, IOException{

ZipInputStream zis= new ZipInputStream(new FileInputStream("c://a.zip"));//生成读取ZIP文件的流

ZipEntry ze= zis.getNextEntry();//取得下一个文件项

long size= ze.getSize();//取得这一项的大小

FileOutputStream fos= new FileOutputStream("c://"+ze.getName());//产生输出文件对象

java下载zip文件(java安装包下载)

for(int i= 0;i<size;i++){//循环读取文件并写入输出文件对象

byte c=(byte)zis.read();

fos.write(c);

}

fos.close();

zis.close();

java下载zip文件(java安装包下载)

}

}

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

40.ZIP压缩文件

/*

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.*;

*/

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

}

}

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

}

}

}

*/

怎么使用java解压带密码的7z,rar,tar,zip等压缩文件

要使用Java解压带密码的7z、rar、tar、zip等压缩文件,首先应当了解不同压缩格式的解压命令。以7z为例,可以查看其命令行帮助,获取解压所需的基本命令和参数。

在实际操作中,发现7z并不完全支持rar格式的文件,这意味着需要专门处理rar格式。不过,对于其他四种格式(7z、rar、tar、zip),它们的命令行工具相对完善,因此可以选择只研究rar的命令行工具。设计一套工具类,专门针对rar格式进行解压,同时集成其他格式的解压功能。这样不仅减少了代码量,还提高了代码的复用性。

在使用Java解压带密码的文件时,重要的是正确设置解压命令中的密码参数。例如,在使用rar解压rar文件时,需要确保密码参数(如“-p”)正确包含在命令中。同样地,对于7z、tar和zip文件,也要确保解压命令中包含密码信息。

具体实现上,可以利用Java的ProcessBuilder类或者Runtime.exec方法来执行外部命令行工具(rar、7z等)。在执行命令前,需要构造命令字符串,包括解压路径、输入文件路径、输出目录、以及必要的参数(如密码)。确保在构造命令字符串时,正确处理参数,避免参数间出现空格等问题。

总结而言,使用Java解压带密码的7z、rar、tar、zip等压缩文件,可以通过研究rar的命令行工具来设计一套通用的解压工具类,实现对多种格式文件的解压。在使用命令行工具时,注意正确设置密码参数,并正确构造命令字符串执行解压操作。

END,本文到此结束,如果可以帮助到大家,还望关注本站哦!

网页制作css样式 网页设计制作网站模板图片web前端开发技术是什么 web开发技术有哪些