99偷拍视频精品区一区二,口述久久久久久久久久久久,国产精品夫妇激情啪发布,成人永久免费网站在线观看,国产精品高清免费在线,青青草在线观看视频观看,久久久久久国产一区,天天婷婷久久18禁,日韩动漫av在线播放直播

壓縮處理文件java代碼,java 文件解壓縮

如何使用JAVA代碼壓縮PDF文件

用java代碼壓縮應用到程序了,代碼一般是比較復雜的,對pdf文件的mate標簽優化,這類標簽包括三類,pdf文件不是網頁就是個文件,何況我們可以用pdf壓縮工具壓縮,下面有個解決方法,樓主可以做參照。

專注于為中小企業提供網站建設、成都網站設計服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業赤峰免費做網站提供優質的服務。我們立足成都,凝聚了一批互聯網行業人才,有力地推動了千余家企業的穩健成長,幫助中小企業通過網站建設實現規模擴充和轉變。

1:點擊打開工具,打開主頁面上有三個功能進行選擇,我們選擇pdf文件壓縮。

2:這這個頁面中我們選擇pdf文件在這里打開,點擊“添加文件”按鈕將文件添加進來。

3:然后在頁面中點擊“開始壓縮”就可以開始壓縮文件了。

4:壓縮完成的文件頁面會顯示已經完成。

如何用java 將文件加密壓縮為zip文件.

用java加密壓縮zip文件:

package com.ninemax.demo.zip.decrypt;

import java.io.File;

import java.io.IOException;

import java.util.List;

import java.util.zip.DataFormatException;

import org.apache.commons.io.FileUtils;

import de.idyl.winzipaes.AesZipFileDecrypter;

import de.idyl.winzipaes.AesZipFileEncrypter;

import de.idyl.winzipaes.impl.AESDecrypter;

import de.idyl.winzipaes.impl.AESDecrypterBC;

import de.idyl.winzipaes.impl.AESEncrypter;

import de.idyl.winzipaes.impl.AESEncrypterBC;

import de.idyl.winzipaes.impl.ExtZipEntry;

/**

* 壓縮指定文件或目錄為ZIP格式壓縮文件

* 支持中文(修改源碼后)

* 支持密碼(僅支持256bit的AES加密解密)

* 依賴bcprov項目(bcprov-jdk16-140.jar)

*

* @author zyh

*/

public class DecryptionZipUtil {

/**

* 使用指定密碼將給定文件或文件夾壓縮成指定的輸出ZIP文件

* @param srcFile 需要壓縮的文件或文件夾

* @param destPath 輸出路徑

* @param passwd 壓縮文件使用的密碼

*/

public static void zip(String srcFile,String destPath,String passwd) {

AESEncrypter encrypter = new AESEncrypterBC();

AesZipFileEncrypter zipFileEncrypter = null;

try {

zipFileEncrypter = new AesZipFileEncrypter(destPath, encrypter);

/**

* 此方法是修改源碼后添加,用以支持中文文件名

*/

zipFileEncrypter.setEncoding("utf8");

File sFile = new File(srcFile);

/**

* AesZipFileEncrypter提供了重載的添加Entry的方法,其中:

* add(File f, String passwd)

* 方法是將文件直接添加進壓縮文件

*

* add(File f, String pathForEntry, String passwd)

* 方法是按指定路徑將文件添加進壓縮文件

* pathForEntry - to be used for addition of the file (path within zip file)

*/

doZip(sFile, zipFileEncrypter, "", passwd);

} catch (IOException e) {

e.printStackTrace();

} finally {

try {

zipFileEncrypter.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

/**

* 具體壓縮方法,將給定文件添加進壓縮文件中,并處理壓縮文件中的路徑

* @param file 給定磁盤文件(是文件直接添加,是目錄遞歸調用添加)

* @param encrypter AesZipFileEncrypter實例,用于輸出加密ZIP文件

* @param pathForEntry ZIP文件中的路徑

* @param passwd 壓縮密碼

* @throws IOException

*/

private static void doZip(File file, AesZipFileEncrypter encrypter,

String pathForEntry, String passwd) throws IOException {

if (file.isFile()) {

pathForEntry += file.getName();

encrypter.add(file, pathForEntry, passwd);

return;

}

pathForEntry += file.getName() + File.separator;

for(File subFile : file.listFiles()) {

doZip(subFile, encrypter, pathForEntry, passwd);

}

}

/**

* 使用給定密碼解壓指定壓縮文件到指定目錄

* @param inFile 指定Zip文件

* @param outDir 解壓目錄

* @param passwd 解壓密碼

*/

public static void unzip(String inFile, String outDir, String passwd) {

File outDirectory = new File(outDir);

if (!outDirectory.exists()) {

outDirectory.mkdir();

}

AESDecrypter decrypter = new AESDecrypterBC();

AesZipFileDecrypter zipDecrypter = null;

try {

zipDecrypter = new AesZipFileDecrypter(new File(inFile), decrypter);

AesZipFileDecrypter.charset = "utf-8";

/**

* 得到ZIP文件中所有Entry,但此處好像與JDK里不同,目錄不視為Entry

* 需要創建文件夾,entry.isDirectory()方法同樣不適用,不知道是不是自己使用錯誤

* 處理文件夾問題處理可能不太好

*/

ListExtZipEntry entryList = zipDecrypter.getEntryList();

for(ExtZipEntry entry : entryList) {

String eName = entry.getName();

String dir = eName.substring(0, eName.lastIndexOf(File.separator) + 1);

File extractDir = new File(outDir, dir);

if (!extractDir.exists()) {

FileUtils.forceMkdir(extractDir);

}

/**

* 抽出文件

*/

File extractFile = new File(outDir + File.separator + eName);

zipDecrypter.extractEntry(entry, extractFile, passwd);

}

} catch (IOException e) {

e.printStackTrace();

} catch (DataFormatException e) {

e.printStackTrace();

} finally {

try {

zipDecrypter.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

/**

* 測試

* @param args

*/

public static void main(String[] args) {

/**

* 壓縮測試

* 可以傳文件或者目錄

*/

// zip("M:\\ZIP\\test\\bb\\a\\t.txt", "M:\\ZIP\\test\\temp1.zip", "zyh");

// zip("M:\\ZIP\\test\\bb", "M:\\ZIP\\test\\temp2.zip", "zyh");

unzip("M:\\ZIP\\test\\temp2.zip", "M:\\ZIP\\test\\temp", "zyh");

}

}

壓縮多個文件時,有兩個方法(第一種沒試):

(1) 預先把多個文件壓縮成zip,然后調用enc.addAll(inZipFile, password);方法將多個zip文件加進來。

(2)針對需要壓縮的文件循環調用enc.add(inFile, password);,每次都用相同的密碼。

怎樣用java快速實現zip文件的壓縮解壓縮

package?zip;

import?java.io.BufferedInputStream;

import?java.io.BufferedOutputStream;

import?java.io.File;

import?java.io.FileInputStream;

import?java.io.FileOutputStream;

import?java.util.Enumeration;

import?java.util.zip.CRC32;

import?java.util.zip.CheckedOutputStream;

import?java.util.zip.ZipEntry;

import?java.util.zip.ZipFile;

import?java.util.zip.ZipOutputStream;

import?org.apache.commons.lang3.StringUtils;

public?class?ZipUtil?{

/**

?*?遞歸壓縮文件夾

?*?@param?srcRootDir?壓縮文件夾根目錄的子路徑

?*?@param?file?當前遞歸壓縮的文件或目錄對象

?*?@param?zos?壓縮文件存儲對象

?*?@throws?Exception

?*/

private?static?void?zip(String?srcRootDir,?File?file,?ZipOutputStream?zos)?throws?Exception

{

if?(file?==?null)?

{

return;

}

//如果是文件,則直接壓縮該文件

if?(file.isFile())

{

int?count,?bufferLen?=?1024;

byte?data[]?=?new?byte[bufferLen];

//獲取文件相對于壓縮文件夾根目錄的子路徑

String?subPath?=?file.getAbsolutePath();

int?index?=?subPath.indexOf(srcRootDir);

if?(index?!=?-1)?

{

subPath?=?subPath.substring(srcRootDir.length()?+?File.separator.length());

}

ZipEntry?entry?=?new?ZipEntry(subPath);

zos.putNextEntry(entry);

BufferedInputStream?bis?=?new?BufferedInputStream(new?FileInputStream(file));

while?((count?=?bis.read(data,?0,?bufferLen))?!=?-1)?

{

zos.write(data,?0,?count);

}

bis.close();

zos.closeEntry();

}

//如果是目錄,則壓縮整個目錄

else?

{

//壓縮目錄中的文件或子目錄

File[]?childFileList?=?file.listFiles();

for?(int?n=0;?nchildFileList.length;?n++)

{

childFileList[n].getAbsolutePath().indexOf(file.getAbsolutePath());

zip(srcRootDir,?childFileList[n],?zos);

}

}

}

/**

?*?對文件或文件目錄進行壓縮

?*?@param?srcPath?要壓縮的源文件路徑。如果壓縮一個文件,則為該文件的全路徑;如果壓縮一個目錄,則為該目錄的頂層目錄路徑

?*?@param?zipPath?壓縮文件保存的路徑。注意:zipPath不能是srcPath路徑下的子文件夾

?*?@param?zipFileName?壓縮文件名

?*?@throws?Exception

?*/

public?static?void?zip(String?srcPath,?String?zipPath,?String?zipFileName)?throws?Exception

{

if?(StringUtils.isEmpty(srcPath)?||?StringUtils.isEmpty(zipPath)?||?StringUtils.isEmpty(zipFileName))

{

throw?new?ParameterException(ICommonResultCode.PARAMETER_IS_NULL);

}

CheckedOutputStream?cos?=?null;

ZipOutputStream?zos?=?null;

try

{

File?srcFile?=?new?File(srcPath);

//判斷壓縮文件保存的路徑是否為源文件路徑的子文件夾,如果是,則拋出異常(防止無限遞歸壓縮的發生)

if?(srcFile.isDirectory()??zipPath.indexOf(srcPath)!=-1)?

{

throw?new?ParameterException(ICommonResultCode.INVALID_PARAMETER,?"zipPath?must?not?be?the?child?directory?of?srcPath.");

}

//判斷壓縮文件保存的路徑是否存在,如果不存在,則創建目錄

File?zipDir?=?new?File(zipPath);

if?(!zipDir.exists()?||?!zipDir.isDirectory())

{

zipDir.mkdirs();

}

//創建壓縮文件保存的文件對象

String?zipFilePath?=?zipPath?+?File.separator?+?zipFileName;

File?zipFile?=?new?File(zipFilePath);

if?(zipFile.exists())

{

//檢測文件是否允許刪除,如果不允許刪除,將會拋出SecurityException

SecurityManager?securityManager?=?new?SecurityManager();

securityManager.checkDelete(zipFilePath);

//刪除已存在的目標文件

zipFile.delete();

}

cos?=?new?CheckedOutputStream(new?FileOutputStream(zipFile),?new?CRC32());

zos?=?new?ZipOutputStream(cos);

//如果只是壓縮一個文件,則需要截取該文件的父目錄

String?srcRootDir?=?srcPath;

if?(srcFile.isFile())

{

int?index?=?srcPath.lastIndexOf(File.separator);

if?(index?!=?-1)

{

srcRootDir?=?srcPath.substring(0,?index);

}

}

//調用遞歸壓縮方法進行目錄或文件壓縮

zip(srcRootDir,?srcFile,?zos);

zos.flush();

}

catch?(Exception?e)?

{

throw?e;

}

finally?

{

try

{

if?(zos?!=?null)

{

zos.close();

}

}

catch?(Exception?e)

{

e.printStackTrace();

}

}

}

/**

?*?解壓縮zip包

?*?@param?zipFilePath?zip文件的全路徑

?*?@param?unzipFilePath?解壓后的文件保存的路徑

?*?@param?includeZipFileName?解壓后的文件保存的路徑是否包含壓縮文件的文件名。true-包含;false-不包含

?*/

@SuppressWarnings("unchecked")

public?static?void?unzip(String?zipFilePath,?String?unzipFilePath,?boolean?includeZipFileName)?throws?Exception

{

if?(StringUtils.isEmpty(zipFilePath)?||?StringUtils.isEmpty(unzipFilePath))

{

throw?new?ParameterException(ICommonResultCode.PARAMETER_IS_NULL);

}

File?zipFile?=?new?File(zipFilePath);

//如果解壓后的文件保存路徑包含壓縮文件的文件名,則追加該文件名到解壓路徑

if?(includeZipFileName)

{

String?fileName?=?zipFile.getName();

if?(StringUtils.isNotEmpty(fileName))

{

fileName?=?fileName.substring(0,?fileName.lastIndexOf("."));

}

unzipFilePath?=?unzipFilePath?+?File.separator?+?fileName;

}

//創建解壓縮文件保存的路徑

File?unzipFileDir?=?new?File(unzipFilePath);

if?(!unzipFileDir.exists()?||?!unzipFileDir.isDirectory())

{

unzipFileDir.mkdirs();

}

//開始解壓

ZipEntry?entry?=?null;

String?entryFilePath?=?null,?entryDirPath?=?null;

File?entryFile?=?null,?entryDir?=?null;

int?index?=?0,?count?=?0,?bufferSize?=?1024;

byte[]?buffer?=?new?byte[bufferSize];

BufferedInputStream?bis?=?null;

BufferedOutputStream?bos?=?null;

ZipFile?zip?=?new?ZipFile(zipFile);

EnumerationZipEntry?entries?=?(EnumerationZipEntry)zip.entries();

//循環對壓縮包里的每一個文件進行解壓

while(entries.hasMoreElements())

{

entry?=?entries.nextElement();

//構建壓縮包中一個文件解壓后保存的文件全路徑

entryFilePath?=?unzipFilePath?+?File.separator?+?entry.getName();

//構建解壓后保存的文件夾路徑

index?=?entryFilePath.lastIndexOf(File.separator);

if?(index?!=?-1)

{

entryDirPath?=?entryFilePath.substring(0,?index);

}

else

{

entryDirPath?=?"";

}

entryDir?=?new?File(entryDirPath);

//如果文件夾路徑不存在,則創建文件夾

if?(!entryDir.exists()?||?!entryDir.isDirectory())

{

entryDir.mkdirs();

}

//創建解壓文件

entryFile?=?new?File(entryFilePath);

if?(entryFile.exists())

{

//檢測文件是否允許刪除,如果不允許刪除,將會拋出SecurityException

SecurityManager?securityManager?=?new?SecurityManager();

securityManager.checkDelete(entryFilePath);

//刪除已存在的目標文件

entryFile.delete();

}

//寫入文件

bos?=?new?BufferedOutputStream(new?FileOutputStream(entryFile));

bis?=?new?BufferedInputStream(zip.getInputStream(entry));

while?((count?=?bis.read(buffer,?0,?bufferSize))?!=?-1)

{

bos.write(buffer,?0,?count);

}

bos.flush();

bos.close();

}

}

public?static?void?main(String[]?args)?

{

String?zipPath?=?"d:\\ziptest\\zipPath";

String?dir?=?"d:\\ziptest\\rawfiles";

String?zipFileName?=?"test.zip";

try

{

zip(dir,?zipPath,?zipFileName);

}?

catch?(Exception?e)

{

e.printStackTrace();

}

String?zipFilePath?=?"D:\\ziptest\\zipPath\\test.zip";

String?unzipFilePath?=?"D:\\ziptest\\zipPath";

try?

{

unzip(zipFilePath,?unzipFilePath,?true);

}

catch?(Exception?e)

{

e.printStackTrace();

}

}

}

關于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代碼,java 文件解壓縮
瀏覽路徑:http://www.yijiale78.com/article4/dsihpoe.html

成都網站建設公司_創新互聯,為您提供品牌網站建設標簽優化品牌網站設計營銷型網站建設網站內鏈商城網站

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

外貿網站建設