javarar,JAVArar怎么运行

本文目录一览:

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可以将文件压缩成rar格式的吗

可以,压缩只是一种算法,什么语言都可以,比如某种格式的文件中1001010(二进制)代表汉子的”中”字,那么压缩算法就是在编码不冲突的情况下可以改变编码长度,比如压缩之后中字变成1010,这样就节省空间了,这是我随便举的例子,具体的对应算法可以网上查

java怎么获得rar和zip文件的压缩率

/**

* 计算ZIP文件的解压大小

*

* @param inputStream 输入流

* 注:输入流由调用方负责关闭

* @return 解压大小

*/

public static long getUncompressedSize(InputStream inputStream) throws IOException {

ZipInputStream zipInputStream = new ZipInputStream(inputStream, Charset.forName(“GBK”));

byte[] buffer = new byte[8*1024*1024];

long uncompressedSize = 0;

ZipEntry zipEntry;

while ((zipEntry = zipInputStream.getNextEntry()) != null) {

long size = zipEntry.getSize();

// ZipEntry的size可能为-1,表示未知

if (size == -1) {

int len;

while ((len = zipInputStream.read(buffer, 0, buffer.length)) != -1) {

uncompressedSize += len;

}

} else {

uncompressedSize += size;

}

zipInputStream.closeEntry();

}

return uncompressedSize;

}

目前只找到这个,zip的,rar的没找到

如何用java读取客户端上传的rar文件

直接通过工具类进行解压或者压缩文件即可。

import java.io.BufferedInputStream;

import java.io.BufferedOutputStream;

import java.io.Closeable;

import java.io.File;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.util.Enumeration;

import java.util.zip.ZipEntry;

import java.util.zip.ZipFile;

/**

*

* @author gdb

*/

public class ZipUtilAll {

public static final int DEFAULT_BUFSIZE = 1024 * 16;

/**

* 解压Zip文件

*

* @param srcZipFile

* @param destDir

* @throws IOException

*/

public static void unZip(File srcZipFile, String destDir) throws IOException

{

ZipFile zipFile = new ZipFile(srcZipFile);

unZip(zipFile, destDir);

}

/**

* 解压Zip文件

*

* @param srcZipFile

* @param destDir

* @throws IOException

*/

public static void unZip(String srcZipFile, String destDir) throws IOException

{

ZipFile zipFile = new ZipFile(srcZipFile);

unZip(zipFile, destDir);

}

/**

* 解压Zip文件

*

* @param zipFile

* @param destDir

* @throws IOException

*/

public static void unZip(ZipFile zipFile, String destDir) throws IOException

{

Enumeration? extends ZipEntry entryEnum = zipFile.entries();

ZipEntry entry = null;

while (entryEnum.hasMoreElements()) {

entry = entryEnum.nextElement();

File destFile = new File(destDir + entry.getName());

if (entry.isDirectory()) {

destFile.mkdirs();

}

else {

destFile.getParentFile().mkdirs();

InputStream eis = zipFile.getInputStream(entry);

System.out.println(eis.read());

write(eis, destFile);

}

}

}

/**

* 将输入流中的数据写到指定文件

*

* @param inputStream

* @param destFile

*/

public static void write(InputStream inputStream, File destFile) throws IOException

{

BufferedInputStream bufIs = null;

BufferedOutputStream bufOs = null;

try {

bufIs = new BufferedInputStream(inputStream);

bufOs = new BufferedOutputStream(new FileOutputStream(destFile));

byte[] buf = new byte[DEFAULT_BUFSIZE];

int len = 0;

while ((len = bufIs.read(buf, 0, buf.length)) 0) {

bufOs.write(buf, 0, len);

}

} catch (IOException ex) {

throw ex;

} finally {

close(bufOs, bufIs);

}

}

/**

* 安全关闭多个流

*

* @param streams

*/

public static void close(Closeable… streams)

{

try {

for (Closeable s : streams) {

if (s != null)

s.close();

}

} catch (IOException ioe) {

ioe.printStackTrace(System.err);

}

}

/**

* @param args

* @throws java.lang.Exception

*/

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

{

// unZip(new File(ZipDemo.class.getResource(“D:/123/HKRT-B2B.zip”).toURI()), “D:/123/”);

unZip(“D:/123/123.zip”, “D:/123/”);

// new File();

}

}

如何在java中解压zip和rar文件

java中有zip包,可以使用

public void getZipFiles(String zipFile, String destFolder) throws IOException {

BufferedOutputStream dest = null;

ZipInputStream zis = new ZipInputStream(

new BufferedInputStream(

new FileInputStream(zipFile)));

ZipEntry entry;

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

System.out.println( “Extracting: ” + entry.getName() );

int count;

byte data[] = new byte[BUFFER];

if (entry.isDirectory()) {

new File( destFolder + “/” + entry.getName() ).mkdirs();

continue;

} else {

int di = entry.getName().lastIndexOf( ‘/’ );

if (di != -1) {

new File( destFolder + “/” + entry.getName()

.substring( 0, di ) ).mkdirs();

}

}

FileOutputStream fos = new FileOutputStream( destFolder + “/”

+ entry.getName() );

dest = new BufferedOutputStream( fos );

while (( count = zis.read( data ) ) != -1)

dest.write( data, 0, count );

dest.flush();

dest.close();

}

}

rar的只能用第三方api,比如junrar

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/278259.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-19 13:21
下一篇 2024-12-19 13:21

相关推荐

  • Javarar解压操作详解

    一、什么是Javarar? Javarar是一个Java语言实现的对RAR文件进行解压操作的开源库,可以在不同的平台上进行使用。 二、Javarar解压的代码实现 Javarar解…

    编程 2024-11-24

发表回复

登录后才能评论