吴裕雄--天生自然JAVAIO操作学习笔记:压缩流与回退流

import java.io.File ;
import java.io.FileInputStream ;
import java.io.InputStream ;
import java.util.zip.ZipEntry ;
import java.util.zip.ZipOutputStream ;
import java.util.zip.ZipFile ;
import java.io.FileOutputStream ;
public class ZipFileDemo01{
    public static void main(String args[]) throws Exception{    // 所有异常抛出
        File file = new File("d:" + File.separator + "mldn.zip") ;    // 找到压缩文件
        ZipFile zipFile = new ZipFile(file) ;    // 实例化ZipFile对象
        System.out.println("压缩文件的名称:" + zipFile.getName()) ;    // 得到压缩文件的名称
    }
};
import java.io.File ;
import java.io.FileInputStream ;
import java.io.InputStream ;
import java.io.OutputStream ;
import java.util.zip.ZipEntry ;
import java.util.zip.ZipOutputStream ;
import java.util.zip.ZipFile ;
import java.io.FileOutputStream ;
public class ZipFileDemo02{
    public static void main(String args[]) throws Exception{    // 所有异常抛出
        File file = new File("d:" + File.separator + "mldn.zip") ;    // 找到压缩文件
        File outputFile = new File("d:" + File.separator + "mldn_unzip.txt") ; // 定义解压缩的文件名称
        ZipFile zipFile = new ZipFile(file) ;    // 实例化ZipFile对象
        ZipEntry entry = zipFile.getEntry("mldn.txt") ;    // 得到一个压缩实体
        OutputStream out = new FileOutputStream(outputFile) ; // 实例化输出流
        InputStream input = zipFile.getInputStream(entry) ;    // 得到一个压缩实体的输入流
        int temp = 0 ;
        while((temp=input.read())!=-1){
            out.write(temp) ;
        }
        input.close() ;    // 关闭输入流
        out.close() ;    // 关闭输出流
    }
};
import java.io.File ;
import java.io.FileInputStream ;
import java.io.InputStream ;
import java.util.zip.ZipEntry ;
import java.util.zip.ZipInputStream ;
import java.io.FileInputStream ;
public class ZipInputStreamDemo01{
    public static void main(String args[]) throws Exception{    // 所有异常抛出
        File zipFile = new File("d:" + File.separator + "mldn.zip") ;    // 定义压缩文件名称
        ZipInputStream input = null ;    // 定义压缩输入流
        input = new ZipInputStream(new FileInputStream(zipFile)) ;    // 实例化ZIpInputStream
        ZipEntry entry = input.getNextEntry() ;    // 得到一个压缩实体
        System.out.println("压缩实体名称:" + entry.getName()) ;
        input.close() ;
    }
};
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 + "mldndir.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() ;
    }
};
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 + "mldn.txt") ;    // 定义要压缩的文件
        File zipFile = new File("d:" + File.separator + "mldn.zip") ;    // 定义压缩文件名称
        InputStream input = new FileInputStream(file) ;    // 定义文件的输入流
        ZipOutputStream zipOut = null ;    // 声明压缩流对象
        zipOut = new ZipOutputStream(new FileOutputStream(zipFile)) ;
        zipOut.putNextEntry(new ZipEntry(file.getName())) ;    // 设置ZipEntry对象
        zipOut.setComment("www.mldnjava.cn") ;    // 设置注释
        int temp = 0 ;
        while((temp=input.read())!=-1){    // 读取内容
            zipOut.write(temp) ;    // 压缩输出
        }
        input.close() ;    // 关闭输入流
        zipOut.close() ;    // 关闭输出流
    }
};
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 + "mldn") ;    // 定义要压缩的文件夹
        File zipFile = new File("d:" + File.separator + "mldndir.zip") ;    // 定义压缩文件名称
        InputStream input = null ;    // 定义文件输入流
        ZipOutputStream zipOut = null ;    // 声明压缩流对象
        zipOut = new ZipOutputStream(new FileOutputStream(zipFile)) ;
        zipOut.setComment("www.mldnjava.cn") ;    // 设置注释
        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() ;    // 关闭输出流
    }
};
import java.io.ByteArrayInputStream ;
import java.io.PushbackInputStream ;
public class PushInputStreamDemo{
    public static void main(String args[]) throws Exception {    // 所有异常抛出
        String str = "www.mldnjava.cn" ;        // 定义字符串
        PushbackInputStream push = null ;        // 定义回退流对象
        ByteArrayInputStream bai = null ;        // 定义内存输入流
        bai = new ByteArrayInputStream(str.getBytes()) ;    // 实例化内存输入流
        push = new PushbackInputStream(bai) ;    // 从内存中读取数据
        System.out.print("读取之后的数据为:") ;
        int temp = 0 ; 
        while((temp=push.read())!=-1){    // 读取内容
            if(temp=='.'){    // 判断是否读取到了“.”
                push.unread(temp) ;    // 放回到缓冲区之中
                temp = push.read() ;    // 再读一遍
                System.out.print("(退回"+(char)temp+")") ;
            }else{
                System.out.print((char)temp) ;    // 输出内容
            }
        }
    }
};
import java.io.ByteArrayInputStream ;
import java.io.PushbackInputStream ;
public class PushInputStreamDemo{
    public static void main(String args[]) throws Exception {    // 所有异常抛出
        String str = "www.mldnjava.cn" ;        // 定义字符串
        PushbackInputStream push = null ;        // 定义回退流对象
        ByteArrayInputStream bai = null ;        // 定义内存输入流
        bai = new ByteArrayInputStream(str.getBytes()) ;    // 实例化内存输入流
        push = new PushbackInputStream(bai) ;    // 从内存中读取数据
        System.out.print("读取之后的数据为:") ;
        int temp = 0 ; 
        while((temp=push.read())!=-1){    // 读取内容
            if(temp=='.'){    // 判断是否读取到了“.”
                push.unread(temp) ;    // 放回到缓冲区之中
                temp = push.read() ;    // 再读一遍
                System.out.print("(退回"+(char)temp+")") ;
            }else{
                System.out.print((char)temp) ;    // 输出内容
            }
        }
    }
};

猜你喜欢

转载自www.cnblogs.com/tszr/p/12161931.html
今日推荐