首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

小虾求救。帮偶一下吧。将txt文件压缩成.zip

2012-01-06 
小虾求救。大虾帮偶一下吧。将txt文件压缩成.zip能不能写一个java程序,将.txt文件压缩成.zip文件。用java.uti

小虾求救。大虾帮偶一下吧。将txt文件压缩成.zip
能不能写一个java程序,将.txt文件压缩成.zip文件。用java.util.zip.GZIPOutputStream.小虾先谢谢大虾了

[解决办法]
不会java的路过,帮顶
[解决办法]
参数是想要打包的txt文件

import java.io.*;

import java.util.zip.*;

class Zip {

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

byte b[] = new byte[512];

ZipOutputStream zout = new ZipOutputStream(System.out);

for(int i = 0; i < args.length; i ++) {

InputStream in = new FileInputStream(args[i]);

ZipEntry e = new ZipEntry(args[i].replace(File.separatorChar, '/ '));

zout.putNextEntry(e);

int len=0;

while((len=in.read(b)) != -1) {

zout.write(b,0,len);

}

zout.closeEntry();

print(e);

}

zout.close();

}


public static void print(ZipEntry e){

PrintStream err = System.err;

err.print( "added " + e.getName());

if (e.getMethod() == ZipEntry.DEFLATED) {

long size = e.getSize();

if (size > 0) {

long csize = e.getCompressedSize();

long ratio = ((size-csize)*100) / size;

err.println( " (deflated " + ratio + "%) ");

}

else {

err.println( " (deflated 0%) ");

}

}

else {

err.println( " (stored 0%) ");

}

}

}

[解决办法]
给你一个自己写的方法

import java.io.File;
import java.util.Vector;
import org.apache.tools.zip.ZipOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;


public class ZipFiles { public ZipFiles() {

}

/**
* 提供Zip文件/目录的方法。
* @param inputFileName 输入文件名/目录
* @param outputFileName 输出文件名
* @param includeSelfEntry 是否包括自身目录(当需要zip的是目录)
*/
public void zip(String inputFileName, String outputFileName, boolean includeSelfEntry) throws
Exception {
ZipOutputStream out = new ZipOutputStream(new FileOutputStream(outputFileName));
File inputFile = new File(inputFileName);

if (includeSelfEntry || !inputFile.isDirectory()) {
zip(out, inputFile, inputFile.getName());
} else {
zip(out, inputFile, " ");
}

System.out.println( "zip done ");
out.close();
}

/**
* 提供多个指定Zip文件/目录的方法。
* @param inputFileNames 多个输入文件名/目录
* @param outputFileName 输出文件名
*/
public void zipFiles(Vector inputFileNames, String outputFileName) throws
Exception {
ZipOutputStream out = new ZipOutputStream(new FileOutputStream(outputFileName));
File inputFile = null;
for (int i = 0; i < inputFileNames.size(); i++) {
inputFile = new File((String)inputFileNames.get(i));
zip(out, inputFile, inputFile.getName());
}
System.out.println( "zip done ");
out.close();
}

private void zip(ZipOutputStream out, File file, String base) throws Exception {
if (file.isDirectory()) {
File[] subfiles = file.listFiles();
if (System.getProperty( "os.name ").startsWith( "Windows ")) {


if (base.length() != 0) {
out.putNextEntry(new org.apache.tools.zip.ZipEntry(base + "\\ "));
base += "\\ ";
}
} else {
if (base.length() != 0) {
out.putNextEntry(new org.apache.tools.zip.ZipEntry(base + "/ "));
base += "/ ";
}
}
for (int i = 0; i < subfiles.length; i++) {
zip(out, subfiles[i], base + subfiles[i].getName());
}
} else {
out.putNextEntry(new org.apache.tools.zip.ZipEntry(base));
FileInputStream in = new FileInputStream(file);
int b;
System.out.println(base);
while ( (b = in.read()) != -1) {
out.write(b);
}
in.close();
}
}
/*
public static void main(String[] args) {
ZipFiles myzip = new ZipFiles();
try {
//myzip.zip( "c:\\temp\\comm ", "c:\\temp\\2006.zip ", false);
Vector fileNames = new Vector();
fileNames.addElement( "c:\\temp\\中文.txt ");
fileNames.addElement( "c:\\temp\\English.txt ");
myzip.zipFiles(fileNames, "c:\\temp\\2006.zip ");

} catch (Exception ex) {
ex.printStackTrace();
}
}*/

}
你参照下

热点排行