導航:首頁 > 文件處理 > 復制壓縮文件java

復制壓縮文件java

發布時間:2022-08-11 22:32:18

1. java能否對壓縮文件進行操作,例如:對zip,rar,tar等文件進行復制。

java.util.zip 提供用於讀寫標准 ZIP 和 GZIP 文件格式的類。

2. java如何實現多個文件的壓縮

importjava.util.*;
importjava.net.URI;
importjava.nio.file.Path;
importjava.nio.file.*;

publicclassZipFSPUser{
publicstaticvoidmain(String[]args)throwsThrowable{
Map<String,String>env=newHashMap<>();
env.put("create","true");
//
//definedinjava.net.JarURLConnection
URIuri=URI.create("jar:file:/codeSamples/zipfs/zipfstest.zip");

try(FileSystemzipfs=FileSystems.newFileSystem(uri,env)){
PathexternalTxtFile=Paths.get("/codeSamples/zipfs/SomeTextFile.txt");
PathpathInZipfile=zipfs.getPath("/SomeTextFile.txt");
//afileintothezipfile
Files.(externalTxtFile,pathInZipfile,
StandardCopyOption.REPLACE_EXISTING);
}
}
}

創建一個zip文件,並添加一個文件進去,需要JDK7

3. 通過Java將Computer2的文件壓縮,然後復制回本地電腦

你要源碼還是什麼?tcp udp都可以,computer2程序監聽就可以了。

4. 搭建Java環境如何解壓

具體解壓縮方法如下:
Java壓縮解壓縮文件的方法有,第一中藉助javajdk自帶的ZipOutputStream和ZipInputStream。第二種,藉助第三方jar,例如ApacheCommonsCompress和Ant。
前提,需要將Ant的ant、jar和ant-launcher、jar添加到classpath中。先創建一個Expander類,該類繼承了Ant的org、apache、tools、ant、taskdefs、Expand類。
第二步:使用Expander類。

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

packagezip;
importjava.io.BufferedInputStream;
importjava.io.BufferedOutputStream;
importjava.io.File;
importjava.io.FileInputStream;
importjava.io.FileOutputStream;
importjava.util.Enumeration;
importjava.util.zip.CRC32;
importjava.util.zip.CheckedOutputStream;
importjava.util.zip.ZipEntry;
importjava.util.zip.ZipFile;
importjava.util.zip.ZipOutputStream;
importorg.apache.commons.lang3.StringUtils;
publicclassZipUtil{

/**
*遞歸壓縮文件夾
*@paramsrcRootDir壓縮文件夾根目錄的子路徑
*@paramfile當前遞歸壓縮的文件或目錄對象
*@paramzos壓縮文件存儲對象
*@throwsException
*/
privatestaticvoidzip(StringsrcRootDir,Filefile,ZipOutputStreamzos)throwsException
{
if(file==null)
{
return;
}

//如果是文件,則直接壓縮該文件
if(file.isFile())
{
intcount,bufferLen=1024;
bytedata[]=newbyte[bufferLen];

//獲取文件相對於壓縮文件夾根目錄的子路徑
StringsubPath=file.getAbsolutePath();
intindex=subPath.indexOf(srcRootDir);
if(index!=-1)
{
subPath=subPath.substring(srcRootDir.length()+File.separator.length());
}
ZipEntryentry=newZipEntry(subPath);
zos.putNextEntry(entry);
BufferedInputStreambis=newBufferedInputStream(newFileInputStream(file));
while((count=bis.read(data,0,bufferLen))!=-1)
{
zos.write(data,0,count);
}
bis.close();
zos.closeEntry();
}
//如果是目錄,則壓縮整個目錄
else
{
//壓縮目錄中的文件或子目錄
File[]childFileList=file.listFiles();
for(intn=0;n<childFileList.length;n++)
{
childFileList[n].getAbsolutePath().indexOf(file.getAbsolutePath());
zip(srcRootDir,childFileList[n],zos);
}
}
}

/**
*對文件或文件目錄進行壓縮
*@paramsrcPath要壓縮的源文件路徑。如果壓縮一個文件,則為該文件的全路徑;如果壓縮一個目錄,則為該目錄的頂層目錄路徑
*@paramzipPath壓縮文件保存的路徑。注意:zipPath不能是srcPath路徑下的子文件夾
*@paramzipFileName壓縮文件名
*@throwsException
*/
publicstaticvoidzip(StringsrcPath,StringzipPath,StringzipFileName)throwsException
{
if(StringUtils.isEmpty(srcPath)||StringUtils.isEmpty(zipPath)||StringUtils.isEmpty(zipFileName))
{
thrownewParameterException(ICommonResultCode.PARAMETER_IS_NULL);
}
CheckedOutputStreamcos=null;
ZipOutputStreamzos=null;
try
{
FilesrcFile=newFile(srcPath);

//判斷壓縮文件保存的路徑是否為源文件路徑的子文件夾,如果是,則拋出異常(防止無限遞歸壓縮的發生)
if(srcFile.isDirectory()&&zipPath.indexOf(srcPath)!=-1)
{
thrownewParameterException(ICommonResultCode.INVALID_PARAMETER,".");
}

//判斷壓縮文件保存的路徑是否存在,如果不存在,則創建目錄
FilezipDir=newFile(zipPath);
if(!zipDir.exists()||!zipDir.isDirectory())
{
zipDir.mkdirs();
}

//創建壓縮文件保存的文件對象
StringzipFilePath=zipPath+File.separator+zipFileName;
FilezipFile=newFile(zipFilePath);
if(zipFile.exists())
{
//檢測文件是否允許刪除,如果不允許刪除,將會拋出SecurityException
=newSecurityManager();
securityManager.checkDelete(zipFilePath);
//刪除已存在的目標文件
zipFile.delete();
}

cos=newCheckedOutputStream(newFileOutputStream(zipFile),newCRC32());
zos=newZipOutputStream(cos);

//如果只是壓縮一個文件,則需要截取該文件的父目錄
StringsrcRootDir=srcPath;
if(srcFile.isFile())
{
intindex=srcPath.lastIndexOf(File.separator);
if(index!=-1)
{
srcRootDir=srcPath.substring(0,index);
}
}
//調用遞歸壓縮方法進行目錄或文件壓縮
zip(srcRootDir,srcFile,zos);
zos.flush();
}
catch(Exceptione)
{
throwe;
}
finally
{
try
{
if(zos!=null)
{
zos.close();
}
}
catch(Exceptione)
{
e.printStackTrace();
}
}
}

/**
*解壓縮zip包
*@paramzipFilePathzip文件的全路徑
*@paramunzipFilePath解壓後的文件保存的路徑
*@paramincludeZipFileName解壓後的文件保存的路徑是否包含壓縮文件的文件名。true-包含;false-不包含
*/
@SuppressWarnings("unchecked")
publicstaticvoinzip(StringzipFilePath,StringunzipFilePath,booleanincludeZipFileName)throwsException
{
if(StringUtils.isEmpty(zipFilePath)||StringUtils.isEmpty(unzipFilePath))
{
thrownewParameterException(ICommonResultCode.PARAMETER_IS_NULL);
}
FilezipFile=newFile(zipFilePath);
//如果解壓後的文件保存路徑包含壓縮文件的文件名,則追加該文件名到解壓路徑
if(includeZipFileName)
{
StringfileName=zipFile.getName();
if(StringUtils.isNotEmpty(fileName))
{
fileName=fileName.substring(0,fileName.lastIndexOf("."));
}
unzipFilePath=unzipFilePath+File.separator+fileName;
}
//創建解壓縮文件保存的路徑
FileunzipFileDir=newFile(unzipFilePath);
if(!unzipFileDir.exists()||!unzipFileDir.isDirectory())
{
unzipFileDir.mkdirs();
}

//開始解壓
ZipEntryentry=null;
StringentryFilePath=null,entryDirPath=null;
FileentryFile=null,entryDir=null;
intindex=0,count=0,bufferSize=1024;
byte[]buffer=newbyte[bufferSize];
BufferedInputStreambis=null;
BufferedOutputStreambos=null;
ZipFilezip=newZipFile(zipFile);
Enumeration<ZipEntry>entries=(Enumeration<ZipEntry>)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=newFile(entryDirPath);
//如果文件夾路徑不存在,則創建文件夾
if(!entryDir.exists()||!entryDir.isDirectory())
{
entryDir.mkdirs();
}

//創建解壓文件
entryFile=newFile(entryFilePath);
if(entryFile.exists())
{
//檢測文件是否允許刪除,如果不允許刪除,將會拋出SecurityException
=newSecurityManager();
securityManager.checkDelete(entryFilePath);
//刪除已存在的目標文件
entryFile.delete();
}

//寫入文件
bos=newBufferedOutputStream(newFileOutputStream(entryFile));
bis=newBufferedInputStream(zip.getInputStream(entry));
while((count=bis.read(buffer,0,bufferSize))!=-1)
{
bos.write(buffer,0,count);
}
bos.flush();
bos.close();
}
}

publicstaticvoidmain(String[]args)
{
StringzipPath="d:\ziptest\zipPath";
Stringdir="d:\ziptest\rawfiles";
StringzipFileName="test.zip";
try
{
zip(dir,zipPath,zipFileName);
}
catch(Exceptione)
{
e.printStackTrace();
}

StringzipFilePath="D:\ziptest\zipPath\test.zip";
StringunzipFilePath="D:\ziptest\zipPath";
try
{
unzip(zipFilePath,unzipFilePath,true);
}
catch(Exceptione)
{
e.printStackTrace();
}
}
}

6. Java怎麼能復制普通文本又能復制zip文件

本質上是一樣的,使用流去讀寫就可以了。
不管是復制文本,zip,還是音頻視頻,所有的豆一樣。

7. 怎樣用java實現壓縮傳輸文件夾

java有ZIP相關的類用來把文件夾打包成zip文件,然後傳輸
或者用ZIPInputStream/ZIPoutputStream壓縮數據流來傳輸
不知道你要的是哪種

8. 怎麼用Eclipse打開我朋友給我寫的java程序 這個java程序是一個RAR壓縮包 如何導入 新手求指導 詳細點 謝

首先解壓。

File->New->Java Project

不用填project,不要選擇use default location,

然後browse是選擇要導入的java項目;

如果只是java源文件的話,你就用Eclipse新建一個項目,然後把文件粘到項目的src文件夾下即可。

9. Java如何對壓縮包里文件進行操作,把裡面的圖片文件復制到指定目錄(壓縮包裡面存在文件夾,下面的文件)

jar命令不是用來執行jar包的,是用來打包的
執行用java -jar

就樓主給的參數,寫一個例子好了

1.建立MANIFEST.MF (在D:\workspace\test\class目錄下)
以下內容為文件內容
==================
Manifest-Version: 1.0
Main-Class: a(主類的路徑,此選項可選,如果希望在windows下雙擊就執行,必須寫)
Created-By: Abc Company(隨便寫,這個是創建人名字)
==================

2.打包
按照lz給的條件
在D:\workspace\test\classes\目錄下執行
jar cvfm classes.jar MANIFEST.MF *.*

以上命令將class下所有文件打包到classes.jar,生成在class目錄下

3.執行
輸入java -jar classes.jar即可執行

4.另一種方案
如果希望使用非 JAR 工具建立 JAR 文件, 建議使用 WinRAR. 首先還是需要建立一個清單文件(名字必須為MANIFEST.MF), 向此文件中寫入同使用 JAR 工具時一樣的內容, 接著需要建立一個META-INF子目錄, 然後將 MANIFEST.MF 放入此目錄, 接著就可以保持目錄結構將所有這些內容使用 WinRAR 壓縮為 ZIP 格式的文件, 文件名取為 xxx.jar 即可.

閱讀全文

與復制壓縮文件java相關的資料

熱點內容
程序員和對象關系不清楚 瀏覽:131
能編輯文件夾的程序 瀏覽:979
國產劇情中國大胸女孩 瀏覽:761
滅門慘案哪三部 瀏覽:1002
蝴蝶gl電影 瀏覽:848
主角叫陸離的小說 瀏覽:99
大寸度電影全裸帶毛 瀏覽:292
韓國一個女的彈鋼琴什麼電影 瀏覽:828
實現伺服器上文件如何下載到本地 瀏覽:268
日本大電影什麼意思 瀏覽:859
紅城堡有電影版嗎 瀏覽:710
阿文是哪部電影的人物 瀏覽:662
閔度允演坐輪椅的電影 瀏覽:913
全國新增命令 瀏覽:192
安卓如何恢復蘋果設置 瀏覽:861
盛勢txt 瀏覽:771
兩只狼老大和一個小嬰兒是什麼電影 瀏覽:435
三洋帝度冰箱壓縮機 瀏覽:299
多義線命令 瀏覽:48