skyyoung(路人甲) :  在哪里,贴子名是什么???

解决方案 »

  1.   

    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();
          }
          
      

  2.   

    ChDw(米) :   
       能再详细指点一下吗??譬如我想压缩一个.exe文件,用什么流??
       我觉得应该就是这个FileReader,还有其他的吗??多谢你!!
      

  3.   

    不一定用文本流压缩,可以用二进制流压缩,例子可以看看java核心技术I的第12章
      

  4.   

    //使用递归法实现的包含多重文件夹的文件压缩 
    //
    // 
    // 
    //--------------------------------------------------- 
    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(" 文件压缩抛出异常!"); 



     这个什么文件和文件夹都可以压缩。