Java IO 压缩流

来源:互联网 发布:mac地址如何修改 编辑:程序博客网 时间:2024/05/20 13:17

自己用的
1.ZipOutputStreamDemo01

package com.aliang.zip;import java.io.File ;import java.io.FileInputStream ;import java.io.InputStream ;import java.util.zip.ZipEntry ;import java.util.zip.ZipOutputStream ;import java.io.FileOutputStream ;public class ZipOutputStreamDemo01{public static void main(String args[]) throws Exception{// 所有异常抛出File file = new File("d:" + File.separator + "myfile.txt") ;// 定义要压缩的文件File zipFile = new File("d:" + File.separator + "myfile.zip") ;// 定义压缩文件名称InputStream input = new FileInputStream(file) ;// 定义文件的输入流ZipOutputStream zipOut = null ;// 声明压缩流对象zipOut = new ZipOutputStream(new FileOutputStream(zipFile)) ;//初始化压缩的对象zipOut.putNextEntry(new ZipEntry(file.getName())) ;// 设置ZipEntry对象zipOut.setComment("javaZipDemo") ;// 设置注释int temp = 0 ;while((temp=input.read())!=-1){// 读取内容zipOut.write(temp) ;// 压缩输出}input.close() ;// 关闭输入流zipOut.close() ;// 关闭输出流System.out.println("ZipOutputStreamDemo01 over!\n");}};//1.定义输入文件file      myfile.txt//2.指定压缩文件zipFile  myfile.zip//3.定义文件输入流  input <-- file//4.创建压缩流对象  zipOut  <--- zipFile压缩文件名称//5.设置ZipEntry对象 zipOut.putNextEntry(new ZipEntry(file.getName()));//6.读      输入流     ---->写      压缩流 

2.ZipOutputStreamDemo02
package com.aliang.zip;import java.io.File ;  import java.io.FileInputStream ;  import java.io.InputStream ;  import java.util.zip.ZipEntry ;  import java.util.zip.ZipOutputStream ;  import java.io.FileOutputStream ;  public class ZipOutputStreamDemo02{    public static void main(String args[]) throws Exception{    // 所有异常抛出          File file = new File("d:" + File.separator + "mydir") ;  // 定义要压缩的文件夹          File zipFile = new File("d:" + File.separator + "mydir.zip") ;    // 定义压缩文件名称          InputStream input = null ;  // 定义文件输入流          ZipOutputStream zipOut = null ; // 声明压缩流对象          zipOut = new ZipOutputStream(new FileOutputStream(zipFile)) ;          zipOut.setComment("zipDirAllFilesDemo") ;  // 设置注释          int temp = 0 ;          if(file.isDirectory()){ // 判断是否是文件夹              File lists[] = file.listFiles() ;   // 列出全部文件              for(int i=0;i<lists.length;i++){                  input = new FileInputStream(lists[i]) ; // 定义文件的输入流                  zipOut.putNextEntry(new ZipEntry(file.getName()                      +File.separator+lists[i].getName())) ;  // 设置ZipEntry对象                  while((temp=input.read())!=-1){ // 读取内容                      zipOut.write(temp) ;    // 压缩输出                  }                  input.close() ; // 关闭输入流              }          }          zipOut.close() ;    // 关闭输出流          System.out.println("ZipOutputStreamDemo02 Finished!");    }  }; //1.定义压缩文件夹file      mydir//2.指定压缩文件 zipFile  mydir.zip//3.定义文件输入流 input//4.创建压缩流对象  zipOut  <--- zipFile压缩文件名称//while{//指定输入流input//设置ZipEntry对象  //读输入流  写压缩流//}

3.ZipInputStreamDemo01

package com.aliang.zip;import java.io.File ;  import java.io.FileInputStream ;  import java.util.zip.ZipEntry ;  import java.util.zip.ZipInputStream ;  public class ZipInputStreamDemo01{      public static void main(String args[]) throws Exception{    // 所有异常抛出          File zipFile = new File("d:" + File.separator + "myfile.zip") ;   // 定义压缩文件名称          ZipInputStream input = null ;   // 定义压缩输入流          input = new ZipInputStream(new FileInputStream(zipFile)) ;  // 实例化ZIpInputStream          ZipEntry entry = input.getNextEntry() ; // 得到一个压缩实体          System.out.println("压缩实体名称:" + entry.getName()) ;          input.close() ;      }  }; 

4.ZipInputStreamDemo02

package com.aliang.zip;import java.io.File ;  import java.io.OutputStream ;  import java.io.InputStream ;  import java.util.zip.ZipEntry ;  import java.util.zip.ZipFile ;  import java.util.zip.ZipInputStream ;  import java.io.FileInputStream ;  import java.io.FileOutputStream ;  public class ZipInputStreamDemo02{      public static void main(String args[]) throws Exception{            File file = new File("d:" + File.separator + "mydir.zip") ;   // 定义压缩文件名称          File outFile = null ;   // 输出文件的时候要有文件夹的操作          ZipFile zipFile = new ZipFile(file) ;   // 实例化ZipFile对象          ZipInputStream zipInput = null ;    // 定义压缩输入流          OutputStream out = null ;   // 定义输出流,用于输出每一个实体内容          InputStream input = null ;  // 定义输入流,读取每一个ZipEntry          ZipEntry entry = null ; // 每一个压缩实体          zipInput = new ZipInputStream(new FileInputStream(file)) ;  // 实例化ZIpInputStream          while((entry = zipInput.getNextEntry())!=null){ // 得到一个压缩实体              System.out.println("解压缩" + entry.getName() + "文件。") ;              outFile = new File("d:" + File.separator + entry.getName()) ;   // 定义输出的文件路径              if(!outFile.getParentFile().exists()){  // 如果输出文件夹不存在                  outFile.getParentFile().mkdir() ;   // 创建文件夹              }              if(!outFile.exists()){  // 判断输出文件是否存在                  outFile.createNewFile() ;   // 创建文件              }              input = zipFile.getInputStream(entry) ; // 得到每一个实体的输入流              out = new FileOutputStream(outFile) ;   // 实例化文件输出流              int temp = 0 ;              while((temp=input.read())!=-1){                  out.write(temp) ;              }              input.close() ;     // 关闭输入流              out.close() ;   // 关闭输出流          }          input.close() ;      }  }; 

myfile.txt

二维向量:
2D Vectors
在二维向量中,可以使用vector中的swap来交换两个向量,swap操作是专门为提高两个向量之间的交换性能而设计的。一般用的swap:
void swap(vector<int>& a,vector<int>& b){


vector<int> temp = a;
a = b;
  b = temp;
}
它涉及向量的创建,赋值,再赋值,最后还要销毁向量。但是用vector的swap操作,这些工作都可以省略掉。只需要做做微不足道的地址交换动作,岂不美哉?

0 0
原创粉丝点击