2012-07-30 126 views
0

我正在浏览java文档,似乎没有办法专门解压缩saz文件,这是由网络代理Fiddler创建的会话归档文件。任何人有任何想法如何做到这一点?解压缩saz文件java

+0

我不知道是什么SAZ文件。但是,如果您可以解压缩它们,那么它们必须是zip文件,并且可以像解压缩其他文件一样解压缩它们。还是你的意思是“解压缩”? – 2012-07-30 17:44:22

+0

Sax文件是会话归档文件。它们包含http请求和响应。而且我不确定是否定期解压缩。也许,但我希望有一个特定于saz文件的方式。 – barndog 2012-07-30 17:45:58

回答

2

根据this它是正常的ZIP与文件名的特定扩展名。使用java.util.zip.ZipFile

关于没有这种扩展的具体方法 - 我认为对于每个可能的扩展没有具体的方法是有意义的。

0

This page,通过谷歌搜索 “SAZ文件”,找到说:

SAZ文件只是特殊格式的.ZIP文件。如果重命名 .SAZ文件.ZIP,你可以打开它使用标准的ZIP 查看工具

查看所以他们只是压缩的文件扩展名不同。将它们解压缩,就像解压zip文件一样。

1

这应该做的伎俩

SAZ文件是常规的zip文件

public static boolean unzipFiles(String srcDirectory, String srcFile, String destDirectory) 
{ 
    try 
    { 
     //first make sure that all the arguments are valid and not null 
     if(srcDirectory == null) 
     { 
      System.out.println(1); 
      return false; 
     } 
     if(srcFile == null) 
     { 
      System.out.println(2); 
      return false; 
     } 
     if(destDirectory == null) 
     { 
      System.out.println(3); 
      return false; 
     } 
     if(srcDirectory.equals("")) 
     { 
      System.out.println(4); 
      return false; 
     } 
     if(srcFile.equals("")) 
     { 
      System.out.println(5); 
      return false; 
     } 
     if(destDirectory.equals("")) 
     { 
      System.out.println(6); 
      return false; 
     } 
     //now make sure that these directories exist 
     File sourceDirectory = new File(srcDirectory); 
     File sourceFile = new File(srcDirectory + File.separator + srcFile); 
     File destinationDirectory = new File(destDirectory); 

     if(!sourceDirectory.exists()) 
     { 
      System.out.println(7); 
      return false; 
     } 
     if(!sourceFile.exists()) 
     { 
      System.out.println(sourceFile); 
      return false; 
     } 
     if(!destinationDirectory.exists()) 
     { 
      System.out.println(9); 
      return false; 
     } 

     //now start with unzip process 
     BufferedOutputStream dest = null; 

     FileInputStream fis = new FileInputStream(sourceFile); 
     ZipInputStream zis = new ZipInputStream(new BufferedInputStream(fis)); 

     ZipEntry entry = null; 

     while((entry = zis.getNextEntry()) != null) 
     { 
      String outputFilename = destDirectory + File.separator + entry.getName(); 

      System.out.println("Extracting file: " + entry.getName()); 

      createDirIfNeeded(destDirectory, entry); 

      int count; 

      byte data[] = new byte[BUFFER_SIZE]; 

      //write the file to the disk 
      FileOutputStream fos = new FileOutputStream(outputFilename); 
      dest = new BufferedOutputStream(fos, BUFFER_SIZE); 

      while((count = zis.read(data, 0, BUFFER_SIZE)) != -1) 
      { 
       dest.write(data, 0, count); 
      } 

      //close the output streams 
      dest.flush(); 
      dest.close(); 
     } 

     //we are done with all the files 
     //close the zip file 
     zis.close(); 

    } 
    catch(Exception e) 
    { 
     e.printStackTrace(); 
     return false; 
    } 

    return true; 
}