sns网站是什么企业邮箱账号注册
2026/1/11 15:33:20 网站建设 项目流程
sns网站是什么,企业邮箱账号注册,中国互联网协会举报中心,莱芜58同城招聘网最新招聘一、解压缩流/压缩流1.2 解压缩流1.2.1 什么是解压缩流#xff1f;解压缩流是Java I/O系统中专门用于读取压缩文件的流#xff0c;它能将压缩后的数据恢复为原始格式。简单来说#xff0c;就是把.zip、.gz这些压缩文件打开的工具。1.2.2 主要解压缩类Java提供了…一、解压缩流/压缩流1.2 解压缩流1.2.1 什么是解压缩流解压缩流是Java I/O系统中专门用于读取压缩文件的流它能将压缩后的数据恢复为原始格式。简单来说就是把.zip、.gz这些压缩文件打开的工具。1.2.2 主要解压缩类Java提供了两种主要的解压缩流类名用途压缩格式ZipInputStream读取ZIP格式的压缩文件ZIP (支持多文件和目录)GZIPInputStream读取GZIP格式的压缩文件GZIP (主要用于单个文件)小贴士ZIP更常用因为它可以打包多个文件和目录而GZIP通常用于单个文件。1.2.3 解压缩的核心步骤1. 基本解压流程// 1. 创建文件输入流 FileInputStream fis new FileInputStream(archive.zip); // 2. 创建ZIP解压流 ZipInputStream zis new ZipInputStream(fis); // 3. 读取每个条目 ZipEntry entry; while ((entry zis.getNextEntry()) ! null) { // 4. 处理目录或文件 if (entry.isDirectory()) { // 创建目录 } else { // 创建文件并写入数据 } // 5. 关闭当前条目 zis.closeEntry(); } // 6. 关闭解压流 zis.close();2. 关键方法详解getNextEntry()获取下一个条目文件或目录返回ZipEntry对象isDirectory()判断当前条目是否是目录getName()获取条目的名称包括路径closeEntry()关闭当前条目准备读取下一个package com.lkbhua.IO2.ZipStreamDemo; import java.io.*; import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; public class demo1 { public static void main(String[] args) throws IOException { // 1、创建一个File去表示要解压的压缩包 File src new File(C:\\Users\\27116\\Desktop\\test.zip); // 2、创建一个File去表示要解压到的目录 File dest new File(C:\\Users\\27116\\Desktop\\bbb); // 3、调用方法进行解压 unZip(src, dest); } // 定义一个方法用来解压 public static void unZip(File src, File dest) throws IOException { // 解压的本质: 把压缩包里面的每一个文件或者文件夹去读取出来按照层级去拷贝到目的地当中 // 创建一个解压缩流用来读取压缩包中的数据 ZipInputStream zis new ZipInputStream(new FileInputStream(src)); // 要先获取到压缩包里面的每一个文件或者文件夹 // 表示当前在压缩包中获取到的文件或者文件夹 ZipEntry entry; while((entry zis.getNextEntry()) ! null){ if(entry.isDirectory()){ // 文件夹:需要在目的地dest处创建一个同样的文件夹 File file new File(dest, entry.toString()); file.mkdirs(); }else{ // 文件: 需要读取到压缩包中的文件并把他存放到目的地dest文件夹中(按照层级目录) FileOutputStream fos new FileOutputStream(new File(dest, entry.toString())); int b; while((b zis.read()) ! -1){ // 创建一个文件输出流把数据写入到目的地的文件中 fos.write(b); } fos.close(); // 表示在压缩包中的一个文件处理完毕了 zis.closeEntry(); } } // 关闭输入流 zis.close(); } }1.3 压缩流1.3.1 什么是压缩流压缩流不是一种独立的流而是一组基于装饰器模式的过滤流处理流。它们装饰在基本的字节流之上在写入数据时自动进行压缩在读取数据时自动进行解压缩。简单理解就像给文件穿上一件压缩外套传输时体积变小接收时自动脱掉外套恢复原样。1.3.2 为什么需要压缩流节省空间压缩后文件体积变小节省带宽网络传输时更快方便打包ZIP可以打包多个文件和目录1.3.3 Java压缩流的核心类Java处理压缩文件主要依赖于java.util.zip包中的几个核心类类名作用压缩格式适用场景ZipOutputStream创建ZIP压缩文件ZIP打包多个文件和目录ZipInputStream读取ZIP压缩文件ZIP解压ZIP文件GZIPOutputStream创建GZIP压缩文件GZIP单个文件压缩GZIPInputStream读取GZIP压缩文件GZIP解压GZIP文件ZipEntry表示ZIP文件中的一个条目-代表文件或目录的元数据小贴士ZIP更常用因为它可以打包多个文件和目录GZIP通常用于单个文件。1.3.4ZIP压缩流实战创建压缩文件1. 基本流程// 1. 创建文件输出流 FileOutputStream fos new FileOutputStream(archive.zip); // 2. 创建ZIP压缩流 ZipOutputStream zos new ZipOutputStream(fos); // 3. 为每个文件创建ZipEntry ZipEntry entry new ZipEntry(file.txt); zos.putNextEntry(entry); // 4. 写入文件内容 FileInputStream fis new FileInputStream(file.txt); byte[] buffer new byte[1024]; int len; while ((len fis.read(buffer)) 0) { zos.write(buffer, 0, len); } // 5. 关闭当前条目 zos.closeEntry(); // 6. 关闭所有资源 zos.close();单个文件package com.lkbhua.IO2.ZipStreamDemo; import java.io.*; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; public class demo2 { public static void main(String[] args) { /* 压缩流——单个文件 */ // 1、创建一个File对象表示要压缩的文件 File src new File(D:\\a.txt); // 2、创建一个File对象表示压缩包的位置 File dest new File(D:\\); // 3、调用方法用来压缩 } /* * 压缩方法 * 参数src要压缩的文件 dest压缩包的位置 * 返回值无 * */ public static void toZip(File src, File dest) throws IOException { // 1、创建压缩流关联压缩包 ZipOutputStream zos new ZipOutputStream(new FileOutputStream(new File(dest, a.zip))); // 2、创建ZipEntry对象表示压缩包里面的每一个文件和文件夹 ZipEntry entry new ZipEntry(a.txt); // 3、把ZipEntry对象写入到压缩流包中 zos.putNextEntry(entry); // 4、把文件内的数据写入到压缩包中 FileInputStream fis new FileInputStream(src); int b; while ((b fis.read()) ! -1) { zos.write(b); } fis.close(); zos.close(); } }文件夹package com.lkbhua.IO2.ZipStreamDemo; import java.io.*; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; public class demo3 { public static void main(String[] args) throws IOException { /* 压缩——压缩多级文件 */ // 1、创建File对象表示要压缩的文件夹 File src new File(C:\\Users\\27116\\Desktop\\bbb); // 2、创建File对象表示压缩包放在哪里压缩包的父级路径 File destParent src.getParentFile(); // 3、创建File对象表示压缩包的路径 File dest new File(destParent, src.getAbsolutePath().zip); // 4、创建压缩流关联压缩包 ZipOutputStream zos new ZipOutputStream(new FileOutputStream(dest)); // 5、获取src里面的每一个文件编程zipEntry并添加到压缩包中 toZip(src, zos, src.getName()); // 6、释放压缩流 zos.close(); } /* * 压缩多级文件 * src要压缩的文件夹 * zos压缩包存放的位置 * name压缩包内部的路径名称 * */ public static void toZip(File src, ZipOutputStream zos,String name) throws IOException { // 1、进入src文件夹 File[] files src.listFiles(); // 2、遍历数组 for (File file : files) { if(file.isFile()){ // 3、判断 文件变成zipEntry对象放到压缩包当中 ZipEntry entry new ZipEntry(name\\file.getName()); zos.putNextEntry(entry); // 读取文件中的数据写到压缩包 FileInputStream fis new FileInputStream(file); int b; while ((b fis.read()) ! -1) { zos.write(b); } fis.close(); zos.closeEntry(); }else{ // 4、判断 文件夹递归 toZip(file, zos, name\\file.getName()); } } } }

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询