您的位置:首页 > 编程语言 > Java开发

文件DirectoryZip.java, 压缩文件例子

2008-09-22 20:06 239 查看
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;

import jp.gr.java_conf.dangan.util.lha.LhaHeader;
import jp.gr.java_conf.dangan.util.lha.LhaOutputStream;
/** *//**
* @author tyrone
*
*/
public class DirectoryZip ...{
/** *//**
*@param inputFileName, file or directory waiting for zipping ,outputFileName output file name
*
*/
public void zip(String inputFileName,String outputFileName) throws Exception ...{
LhaOutputStream out = new LhaOutputStream(new FileOutputStream(outputFileName));
zip(out, new File(inputFileName), "");
System.out.println("zip done");
out.close();
}
private void zip(LhaOutputStream out, File f, String base) throws Exception ...{
if (f.isDirectory()) ...{
File[] fl = f.listFiles();
if (System.getProperty("os.name").startsWith("Windows"))...{
out.putNextEntry(new LhaHeader(base + "/"));
base = base.length() == 0 ? "" : base + "/";
}
else...{
out.putNextEntry(new LhaHeader(base + "/"));
base = base.length() == 0 ? "" : base + "/";
}
for (int i = 0; i < fl.length; i++) ...{
zip(out, fl[i], base + fl[i].getName());
}
}
else ...{
out.putNextEntry(new LhaHeader(base));
//***乱????理
//BufferedReader in=new BufferedReader(
//new InputStreamReader(new FileInputStream(f),"ISO8859_1"));

FileInputStream in = new FileInputStream(f);
int b;
System.out.println(base);
while ( (b = in.read()) != -1) ...{
out.write(b);
}
in.close();
}
}
public static void main(String[] args)...{
DirectoryZip m_zip=new DirectoryZip();
try...{
m_zip.zip("E:/temp","E:/www.lzh");
}catch(Exception ex)...{
ex.printStackTrace();
}
}
}

文章出处:http://www.diybl.com/course/3_program/java/javashl/2008125/97410.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: