谁了解java里的关于ZIP压缩的几个类????请进!!!!!!! skyyoung(路人甲) : 在哪里,贴子名是什么??? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 for(int i = 0; i < args.length; i++) { System.out.println( "Writing file " + args[i]); BufferedReader in = new BufferedReader( new FileReader(args[i]));//注意这里。你把你所需要的流替换掉这里的FileReader不就可以了嘛! out.putNextEntry(new ZipEntry(args[i])); int c; while((c = in.read()) != -1) out.write(c); in.close(); } ChDw(米) : 能再详细指点一下吗??譬如我想压缩一个.exe文件,用什么流?? 我觉得应该就是这个FileReader,还有其他的吗??多谢你!! 不一定用文本流压缩,可以用二进制流压缩,例子可以看看java核心技术I的第12章 //使用递归法实现的包含多重文件夹的文件压缩 //// // //--------------------------------------------------- import java.util.*; import java.io.*; import java.util.zip.*; class zip{ public static void main(String[] args) { /* String dir=""; public void setDir(String dir) { this.dir=dir; }*/ zip.zipFile("cuteftppro.exe"); //zip.zipFile("zip");}public static void zipFile(String dir) { String name=""; /* String dir = ""; if(args.length<1) { System.out.println("\t\t请选择你要压缩的文件夹名称或文件名称!"); return; } else { dir = args[0]; } */ File f = new File(dir); System.out.println(f.getAbsolutePath()); if(!f.exists()) { System.out.println("\t\t 所选文件夹或文件名并不存在!"); return ; } if (!f.isDirectory()) { try { name=f.getName(); name=name.substring(0,name.indexOf('.'))+".zip"; FileOutputStream ff = new FileOutputStream(name); ZipOutputStream out = new ZipOutputStream(new DataOutputStream(ff)); //for(int i = 0; i < args.length; i++) //{ DataInputStream in = new DataInputStream(new FileInputStream(dir)); //out.putNextEntry(new ZipEntry(args[i])); out.putNextEntry(new ZipEntry(dir)); int c; while((c = in.read()) != -1) out.write(c); in.close(); //} out.close(); } catch(Exception e) { System.out.println(" 文件压缩抛出异常!"); } } else { try { name=f.getName()+".zip"; FileOutputStream ff = new FileOutputStream(name); ZipOutputStream out = new ZipOutputStream(new DataOutputStream(ff)); zip.listFiles(f,out); out.close(); out=null; } catch(Exception e) { System.out.println(" 文件压缩抛出异常!"); } } } public static void listFiles(File path,ZipOutputStream out ) { File[] files; files = path.listFiles(); try{ //FileOutputStream ff = new FileOutputStream("d:\\java\\zip.zip"); //ZipOutputStream out = new ZipOutputStream(new DataOutputStream(ff)); for(int i = 0;i<files.length;i++) { if(files[i].isFile()) { String fff=path+"\\"+files[i].getName(); System.out.println(fff); DataInputStream in = new DataInputStream(new FileInputStream(fff)); out.putNextEntry(new ZipEntry(fff)); int c; while((c = in.read()) != -1) out.write(c); in.close(); } if(files[i].isDirectory()) zip.listFiles(files[i],out); } //out.close(); } catch(Exception e) { System.out.println(" 文件压缩抛出异常!"); } } } 这个什么文件和文件夹都可以压缩。 今天偶然发现一个request的问题 请大虾们帮忙指点下~~~~~~~~~ 菜鸟请教大仙帮忙看下这个问题!!!!!!!!!!!!!!!!!! 初学求有经验者给点意见 文本框等 getText()传来的的字符串 换行符 是'\n'吗? 05年就要结束跳槽时机来了,发200分,大家说说比较好的外企和国企,为想跳槽的兄弟提供信息 怎样用SQLServer2000JDBC驱动程序连接数据库? 新手上路,Jb8的小问题 关于Java的应用范围 java ExecutorService线程 中断调度 有关数据库连接池的问题 怎样在VC里调试JNI?
System.out.println(
"Writing file " + args[i]);
BufferedReader in =
new BufferedReader(
new FileReader(args[i]));//注意这里。你把你所需要的流替换掉这里的FileReader不就可以了嘛!
out.putNextEntry(new ZipEntry(args[i]));
int c;
while((c = in.read()) != -1)
out.write(c);
in.close();
}
能再详细指点一下吗??譬如我想压缩一个.exe文件,用什么流??
我觉得应该就是这个FileReader,还有其他的吗??多谢你!!
//
//
//
//---------------------------------------------------
import java.util.*;
import java.io.*;
import java.util.zip.*;
class zip{
public static void main(String[] args)
{
/* String dir="";
public void setDir(String dir)
{
this.dir=dir;
}*/
zip.zipFile("cuteftppro.exe");
//zip.zipFile("zip");
}
public static void zipFile(String dir)
{
String name="";
/* String dir = "";
if(args.length<1)
{
System.out.println("\t\t请选择你要压缩的文件夹名称或文件名称!");
return;
}
else
{
dir = args[0];
}
*/
File f = new File(dir);
System.out.println(f.getAbsolutePath());
if(!f.exists())
{
System.out.println("\t\t 所选文件夹或文件名并不存在!");
return ;
}
if (!f.isDirectory())
{
try
{
name=f.getName();
name=name.substring(0,name.indexOf('.'))+".zip";
FileOutputStream ff = new FileOutputStream(name);
ZipOutputStream out = new ZipOutputStream(new DataOutputStream(ff));
//for(int i = 0; i < args.length; i++)
//{
DataInputStream in = new DataInputStream(new FileInputStream(dir));
//out.putNextEntry(new ZipEntry(args[i]));
out.putNextEntry(new ZipEntry(dir));
int c;
while((c = in.read()) != -1)
out.write(c);
in.close();
//}
out.close();
}
catch(Exception e)
{
System.out.println(" 文件压缩抛出异常!");
}
}
else
{
try
{
name=f.getName()+".zip";
FileOutputStream ff = new FileOutputStream(name);
ZipOutputStream out = new ZipOutputStream(new DataOutputStream(ff));
zip.listFiles(f,out);
out.close();
out=null;
}
catch(Exception e)
{
System.out.println(" 文件压缩抛出异常!");
}
} }
public static void listFiles(File path,ZipOutputStream out )
{
File[] files;
files = path.listFiles();
try{
//FileOutputStream ff = new FileOutputStream("d:\\java\\zip.zip");
//ZipOutputStream out = new ZipOutputStream(new DataOutputStream(ff));
for(int i = 0;i<files.length;i++)
{
if(files[i].isFile())
{
String fff=path+"\\"+files[i].getName();
System.out.println(fff);
DataInputStream in = new DataInputStream(new FileInputStream(fff));
out.putNextEntry(new ZipEntry(fff));
int c;
while((c = in.read()) != -1)
out.write(c);
in.close();
}
if(files[i].isDirectory())
zip.listFiles(files[i],out);
}
//out.close();
}
catch(Exception e)
{
System.out.println(" 文件压缩抛出异常!");
}
}
}
这个什么文件和文件夹都可以压缩。