将文件夹下面的文件打包成zip压缩文件
2018-03-25 15:08
274 查看
package
com.open1111.httpclient;
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
test2 {
private
test2(){}
/**
* 将存放在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.length<1){
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;i<sourceFiles.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:\\爬虫\\2";
String
zipFilePath
=
"D:\\爬虫";
String
fileName
=
"12700153file";
boolean
flag = test2.fileToZip(sourceFilePath,
zipFilePath,
fileName);
if(flag){
System.out.println("文件打包成功!");
}else{
System.out.println("文件打包失败!");
}
}
}
com.open1111.httpclient;
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
test2 {
private
test2(){}
/**
* 将存放在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.length<1){
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;i<sourceFiles.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:\\爬虫\\2";
String
zipFilePath
=
"D:\\爬虫";
String
fileName
=
"12700153file";
boolean
flag = test2.fileToZip(sourceFilePath,
zipFilePath,
fileName);
if(flag){
System.out.println("文件打包成功!");
}else{
System.out.println("文件打包失败!");
}
}
}
相关文章推荐
- java.util.zip压缩打包文件总结一:压缩文件及文件下面的文件夹
- (Java控制台程序版)递归打包整个父文件夹下的文件和子文件夹成压缩文件(*.ZIP)以及打包时常见的文件乱码和文件名乱码以及丢失文件或文件损坏问题解决办法
- 将文件夹下面的文件打包成zip
- JAVA实现将文件或是文件夹打包压缩成zip格式
- VC++下ZIP压缩文件 或 文件夹
- Unity LZMA GZIP 压缩、解压文件 和 打包文件夹 (支持进度回调)
- php打包文件夹成zip文件
- java实现将多个文件打包成zip压缩文件以及对压缩文件的加密
- 【语言-C++】文件夹或文件加密 - 方案一使用7z-zip工具压缩加密
- 使用zip对文件或文件夹进行压缩, 解压缩
- Unity LZMA GZIP 压缩、解压文件 和 打包文件夹 (支持进度回调)
- java实现zip压缩文件/文件夹
- (javaWeb)多个附件打包成压缩文件(*.ZIP)以及打包时常见的文件乱码和文件名乱码以及丢失文件或文件损坏问题解决办法
- duilib将资源文件压缩成zip并打包到exe的资源中
- java 将指定文件夹递归的进行zip打包压缩
- 针对一个文件夹压缩成zip文件
- C#压缩文件夹及文件夹下的所有文件为zip
- JAVA实现把指定文件夹下的所有文件压缩成zip包
- 将文件夹中的文件压缩到zip
- 将指定文件/文件夹压缩成zip、rar压缩文件