- 浏览: 684988 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (254)
- java分布式应用架构 (22)
- SSH框架整合 (6)
- java web 学习笔记 (49)
- java 学习笔记 (56)
- struts 2 学习 (6)
- Hibernate学习 (10)
- spring 学习 (2)
- 客户端编程(javascript) (4)
- IDE使用 (13)
- 生命 人生 (6)
- 系统维护 (3)
- 技术篇 (10)
- MySql (2)
- J2ME (1)
- java网络编程 (4)
- 数据库 (5)
- C/C++ (8)
- Oracle (7)
- 软件测试 (0)
- 软件的安装和部署 (0)
- Java快讯 (1)
- swt (1)
- Flex (1)
- 软件工程 (1)
- PostgreSQL (1)
- sql server2000 (2)
- 嵌入式数据库sqlite (5)
- J2EE (1)
- XML (1)
- ibatis3(MyBatis) (6)
- Linux&Unix (1)
- velocity (1)
- 回报社会 (4)
- 软件项目管理 (3)
- android研究 (3)
- C# (2)
- Objective-C (1)
- 音乐 (0)
- webx (1)
- JMS (1)
- maven软件项目管理 (1)
- 分布式服务 (0)
- 云平台 (0)
- 分布式存储 (1)
- 分布式系统架构 (0)
- 移动互联网 (1)
- ZooKeeper (1)
最新评论
-
liyys:
楼主,可不可以发这个项目的源码工程出来分享一下,少了几个类。楼 ...
仿照Hibernate实现一个SQLite的ORM框架 -
liyys:
少了一些类的源码没有粘贴出来
仿照Hibernate实现一个SQLite的ORM框架 -
honglei0412:
我使用的是这种方式获取db文件的目录但是 URL p = Fi ...
使用sqlite注意事项 -
honglei0412:
大侠 能不能说明下DbFile您是怎么做的吗?
使用sqlite注意事项 -
ahack:
刚写完mapping才发现早就有人写好了。仔细一看还都是针对的 ...
仿照Hibernate实现一个SQLite的ORM框架
package org.liufei.net.util; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.util.Enumeration; import org.apache.log4j.Logger; import org.apache.tools.zip.ZipEntry; import org.apache.tools.zip.ZipFile; import org.apache.tools.zip.ZipOutputStream; /** * * @author 刘飞 * */ public class JavaZip { private static final Logger logger = Logger.getLogger(JavaZip.class); /** * 压缩文件file成zip文件zipFile * * @param file * 要压缩的文件 * @param zipFile * 压缩文件存放地方 * @throws IOException */ public static void zip(File file, File zipFile) { ZipOutputStream output = null; try { output = new ZipOutputStream(new FileOutputStream(zipFile)); /** * 顶层目录开始 */ zipFile(output, file, ""); } catch (IOException ex) { logger.error("zip file [ " + file + " ] error.", ex); throw new RuntimeException("zip file [ " + file + " ] error.", ex); } finally { try { /** * 关闭流 */ if (output != null) { output.flush(); output.close(); } } catch (IOException e) { logger.error("close ZipOutputStream [ file : " + zipFile + " ] error.", e); throw new RuntimeException("zip file [ " + zipFile + " ] error.", e); } } } /** * 压缩文件为zip格式 * * @param output * ZipOutputStream对象 * @param file * 要压缩的文件或文件夹 * @param basePath * 条目根目录 * @throws IOException */ private static void zipFile(ZipOutputStream output, File file, String basePath) throws IOException { FileInputStream input = null; try { /** * 文件为目录 */ if (file.isDirectory()) { /** * 得到当前目录里面的文件列表 */ File list[] = file.listFiles(); basePath = basePath + (basePath.length() == 0 ? "" : "/") + file.getName(); /** * 循环递归压缩每个文件 */ for (File f : list) zipFile(output, f, basePath); } else { /** * 压缩文件 */ basePath = (basePath.length() == 0 ? "" : basePath + "/") + file.getName(); output.putNextEntry(new ZipEntry(basePath)); input = new FileInputStream(file); int readLen = 0; byte[] buffer = new byte[1024 * 8]; while ((readLen = input.read(buffer, 0, 1024 * 8)) != -1) output.write(buffer, 0, readLen); } } catch (Exception ex) { logger.error("zip file [ " + file + " ] error.", ex); throw new RuntimeException("zip file [ " + file + " ] error.", ex); } finally { /** * 关闭流 */ if (input != null) input.close(); } } /** * 解压zip文件 * * @param zip * zip文件绝对路径 * @param unZipDir * 解压到的目录 * @throws IOException */ public static void unZip(String zip, String unZipDir) throws IOException { unZip(new File(zip), new File(unZipDir)) ; } /** * 解压zip文件 * * @param zip * zip文件 * @param unZipDir * 解压到的目录文件 * @throws IOException */ @SuppressWarnings("unchecked") public static void unZip(File zip, File unZipDir) throws IOException { ZipFile zipFile = new ZipFile(zip, "GBK"); byte[] buffer = new byte[2048]; int length = -1; OutputStream out = null; InputStream in = null; Enumeration<ZipEntry> zee = zipFile.getEntries(); while (zee.hasMoreElements()) { ZipEntry zipEntry = zee.nextElement(); File loadFile = new File(unZipDir, zipEntry.getName()); if (zipEntry.isDirectory()) { loadFile.mkdirs(); } else { if (!loadFile.getParentFile().exists()) { loadFile.getParentFile().mkdirs(); } out = new FileOutputStream(loadFile, false); in = zipFile.getInputStream(zipEntry); while ((length = in.read(buffer)) > 0) { out.write(buffer, 0, length); } } } if (in != null) { in.close(); } if (out != null) { out.flush(); out.close(); } } }
发表评论
-
Java编程中“为了性能”尽量要做到的一些地方
2012-09-14 10:33 12201. 尽量在合适的场合使 ... -
Java 5.0多线程编程
2012-08-17 19:16 1064概述 1:三个新加的多线程包 2:C ... -
Thread.setDaemon设置说明
2012-06-28 18:00 1150Thread.setDaemon的用法,经过学习以后了解: ... -
JVM运行时数据区
2012-03-07 13:15 1005JVM定义了若干个程序执行期间使用的数据区域。这个区域里的一些 ... -
使用ibatis防止sql注入
2011-12-19 19:59 4659为了防止SQL注入,iBatis模糊查询时也要避免使用$$来进 ... -
java的引用探讨
2011-12-18 16:03 1125Reference 是一个抽象类,而 SoftReferenc ... -
ClassLoader
2011-11-04 15:11 1192package org.liufei.neta.lib; ... -
仿照Hibernate实现一个SQLite的ORM框架
2011-09-30 20:06 3194那么先来看看使用 实体对象 package test; ... -
获取客户机IP地址
2011-09-07 15:04 1032package org.liufei.jweb; imp ... -
Java读取本地机器MAC地址
2011-09-07 15:01 1299package org.liufei.jweb; imp ... -
获取IP地址
2011-09-07 13:41 2419public String getIpAddrByReques ... -
用CSS来美化Java桌面--Javacss
2011-09-02 12:14 1328CSS可以用来修饰HTML网页。 但你有没有想过,使用CSS ... -
java管理windows进程
2011-08-29 17:34 1778package org.zzuli.xmsb; /** ... -
java html工具
2011-08-29 17:26 1084package org.liufei.jweb.util; ... -
java将汉字转化为全拼
2011-08-29 17:24 1233package org.liufei.jweb.util; ... -
开源项目SVN源码地址
2011-08-22 16:20 3552多优秀的开源项目已经提供SVN源码签出了,无论是解疑还是学习, ... -
XML解析
2011-08-22 09:58 10221、DOM解析XML <?xml version=&q ... -
jdbc操作大观园
2011-08-09 17:22 1385最近公司使用jdbc和mybatis比较多,于是自己试着写了一 ... -
Windows XP系统总命令集合
2011-08-05 14:08 1075Windows XP系统总命令集合 winver----- ... -
Java处理UTF-8带BOM的文本的读写
2011-08-01 11:28 2997什么是BOM BOM(byte-order mark),即字 ...
相关推荐
java压缩文件的程序代码,可以压缩单个文件夹,单个标准文件,多个标准文件 多个文件夹,以及文件夹和文件混合的压缩代码
本文将深入探讨如何使用Java来处理压缩文件,特别是针对标题提及的“java压缩文件以及文件夹”。我们将主要关注`ZipCompressor.java`这个类,它是实现文件和文件夹压缩的核心工具。 首先,让我们了解`java.util.zip...
在Java编程语言中,压缩文件是一项常见的任务,用于减少文件的存储空间,提高传输效率。HUFFMAN编码是一种数据压缩算法,它基于字符频率构建一棵最优的二叉树来进行编码,广泛应用于文本压缩。本节将详细介绍如何在...
压缩文件方法 该方法需要引用zip4j的jar文件 单个文件、多个文件压缩 /** * 使用给定密码压缩指定文件或文件夹到指定位置. * * dest可传最终压缩文件存放的绝对路径,也可以传存放目录,也可以传null或者""....
### Java压缩文件代码详解:基于Zip格式的文件压缩技术 #### 概述 在Java编程中,处理文件压缩是一项常见的需求,特别是在数据传输、存储优化或归档管理方面。Java标准库提供了强大的压缩功能,其中最常用的是基于...
工具类中提供的方法有:压缩单个文件,压缩多个文件,解压文件到制定路径下。获取压缩文件的文件列表。压缩文件的文件注释。
java压缩文件及解压的算法。方法使用见main函数
### Java压缩文件目录成ZIP包最新技巧 在Java开发中,对文件或目录进行压缩是一项常见且实用的功能。本文将详细介绍如何使用`java.util.zip`包中的类来压缩文件及目录,并解决其中的一个常见问题——中文文件名或...
标题提到的"java压缩文件时的依赖jar包"很可能指的是用来解决此类问题的特定库。在这种情况下,`ant.jar`是一个关键的角色,它是Apache Ant项目的组成部分,它是一个基于Java的任务执行框架,常用于构建和部署项目,...
2. **压缩文件**: 使用`ZipOutputStream`,你可以将文件或目录添加到ZIP文件中。首先,创建一个`ZipOutputStream`实例,然后通过调用`putNextEntry`方法开始新的`ZipEntry`,接着使用`write`方法写入文件数据,最后...
本文将深入探讨如何使用Java来处理ZIP文件,特别是针对标题所提及的“java 中 zip压缩文件解压工具类”。我们将讨论核心的Java API,如`java.util.zip`包中的类,并通过一个名为`CompressFileUtils`的工具类来展示...
应用java来压缩需要打包的文件,在系统管理中将毛哥路径或者某个文件夹压缩成zip包
解决java压缩zip文件时的中文乱码问题 ...实现:java压缩文件成zip实现无乱码。 包括:写好的工具类与jar包。 使用方法:导入ant.jar包,调用CompressExcelOperate中的方法,即可实现压缩文件,并保证没有中文乱码。
zipEntry.setComment("压缩文件"); // 可以添加注释,同样需要指定字符集 zos.putNextEntry(zipEntry); try (BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file))) { byte[] buffer...
2、指定文件夹(文件夹中必须有一个文件),程序会自动的压缩文件为 zip,然后下载删除源文件与压缩文件。 3、可以指定文件都为最后生成为zip文件下载,且删除源文件。 1、压缩文件或者目录(只是压缩不删除):...