zoukankan      html  css  js  c++  java
  • 吴裕雄--天生自然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) ;    // 输出内容
                }
            }
        }
    };
  • 相关阅读:
    JeePlus:代码生成器
    JeePlus:API工具
    Java实现 洛谷 P1023 税收与补贴问题
    Java实现 洛谷 P1023 税收与补贴问题
    Java实现 洛谷 P1023 税收与补贴问题
    Java实现 洛谷 P1328 生活大爆炸版石头剪刀布
    Java实现 洛谷 P1328 生活大爆炸版石头剪刀布
    Java实现 洛谷 P1328 生活大爆炸版石头剪刀布
    Java实现 洛谷 P1328 生活大爆炸版石头剪刀布
    Java实现 洛谷 P1328 生活大爆炸版石头剪刀布
  • 原文地址:https://www.cnblogs.com/tszr/p/12161931.html
Copyright © 2011-2022 走看看