- 浏览: 351370 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
AspirantHui:
楼主说的很有道理。只是你第二点里面写的“行业经验”具体是指什么 ...
一起来讨论程序员的跳槽与选择 -
di1984HIT:
写的不错啊、
linux下的mysql的导入导出命令 -
王迎宾:
① 弄啥来!
MyEclipse配置WebService六步曲(xfire) -
xiaoji123pt:
不错。。
tomcat下catalina.out日志文件分割 -
Unmi:
可是原来那个 catalina.out 文件还是一直保留着老的 ...
tomcat下使用cronolog对catalina.out日志文件分割
package test;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.LinkedList;
import java.util.List;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import java.util.zip.ZipOutputStream;
/**
*
* @author liangjw
* @desc 测试java打zip包和解压zip包
* 用java.util.zip下的类会出现乱码,换成org.apache.tools.zip没有乱码
*/
public class MyTestZip {
public static void main(String args[]) throws Exception{
MyTestZip mtz=new MyTestZip();
//mtz.zipFile("f://test", "f://testttt.zip");
mtz.upZipFile("f:\\testttt.zip","f:\\ttt");
}
/**
* 将指定目录压缩
* @param basePath 指定的目录的路径
* @param zipname 压缩后的存放路径
* @throws Exception
*/
public void zipFile(String basePath,String zipname) throws Exception{
ZipEntry ze = null;
byte[] buffer = new byte[1024];
int readLen = 0;
ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(zipname));
for (File file : getFiles(new File(basePath))) {
System.out.println("ziping:" + file.getName());
ze = new ZipEntry(getRelativePath(file,basePath));
ze.setSize(file.length());
ze.setTime(file.lastModified());
zos.putNextEntry(ze);
InputStream in = new BufferedInputStream(new FileInputStream(file));
while ((readLen = in.read(buffer, 0, 1024)) != -1) {
zos.write(buffer, 0, readLen);
}
in.close();
}
zos.close();
}
/**
* 将给定的压缩文件进行解压,放到指定目录
* @param zipFilename 需要解压缩的文件
* @param dir 解压后文件存放的目录
*/
public void upZipFile(String zipFilename,String dir) throws Exception{
ZipInputStream zin=new ZipInputStream(new FileInputStream(zipFilename));
ZipEntry ze=null;
byte[] buf=new byte[1024];
while((ze=zin.getNextEntry())!=null){
System.out.println("unziping:"+ze.getName());
OutputStream os=new BufferedOutputStream(new FileOutputStream(getRealFileName(dir,ze.getName())));
int readLen=0;
while ((readLen=zin.read(buf, 0, 1024))!=-1) {
os.write(buf, 0, readLen);
}
os.close();
}
zin.close();
}
/**
* 根据给定的目录返回该文件夹下所有的文件(包括子目录) 如果给定的是文件则返回该文件
*
* @param file
* 给定的文件目录
* @return 所有文件的列表
*/
private static List<File> getFiles(File fileDir) {
List<File> listFiles = new LinkedList<File>();
// 判断给定的fileDir是否为文件,如果是则直接返回
if (fileDir.isFile()) {
listFiles.add(fileDir);
return listFiles;
}
// 如果是目录则遍历该目录
File[] files = fileDir.listFiles();
for (File file : files) {
if (file.isFile()) {
listFiles.add(file);
} else {
// 对方法进行递归调用
listFiles.addAll(getFiles(file));
}
}
return listFiles;
}
/**
* 给定根目录,返回另一个文件名的相对路径,用于zip文件中的路径
* @param file 实际的文件名
* @param baseDir 根目录
* @return
*/
private static String getRelativePath(File file, String baseDir) {
File base = new File(baseDir);
String filename = file.getName();
while(true){
file = file.getParentFile();
if(file==null)break;
if(file.equals(base))break;
else filename = file.getName() + "/" + filename;
}
return filename;
}
/**
* 给定根目录,返回一个相对路径所对应的实际文件名.
* @param baseDir 指定根目录
* @param absFileName 相对路径名,来自于ZipEntry中的name
* @return java.io.File 实际的文件
*/
public static File getRealFileName(String baseDir, String absFileName){
//判断是否有下级目录,如果没有则将该文件直接new出来
String[] dirs=absFileName.split("/");
File ret=new File(baseDir);
//有下级目录则先创建目录,再创建文件
if(dirs.length>1){
for (int i = 0; i < dirs.length-1;i++) {
ret=new File(ret, dirs[i]);
}
if(!ret.exists())
ret.mkdirs();
ret=new File(ret, dirs[dirs.length-1]);
return ret;
}
return new File(ret,absFileName);
}
}
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.LinkedList;
import java.util.List;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import java.util.zip.ZipOutputStream;
/**
*
* @author liangjw
* @desc 测试java打zip包和解压zip包
* 用java.util.zip下的类会出现乱码,换成org.apache.tools.zip没有乱码
*/
public class MyTestZip {
public static void main(String args[]) throws Exception{
MyTestZip mtz=new MyTestZip();
//mtz.zipFile("f://test", "f://testttt.zip");
mtz.upZipFile("f:\\testttt.zip","f:\\ttt");
}
/**
* 将指定目录压缩
* @param basePath 指定的目录的路径
* @param zipname 压缩后的存放路径
* @throws Exception
*/
public void zipFile(String basePath,String zipname) throws Exception{
ZipEntry ze = null;
byte[] buffer = new byte[1024];
int readLen = 0;
ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(zipname));
for (File file : getFiles(new File(basePath))) {
System.out.println("ziping:" + file.getName());
ze = new ZipEntry(getRelativePath(file,basePath));
ze.setSize(file.length());
ze.setTime(file.lastModified());
zos.putNextEntry(ze);
InputStream in = new BufferedInputStream(new FileInputStream(file));
while ((readLen = in.read(buffer, 0, 1024)) != -1) {
zos.write(buffer, 0, readLen);
}
in.close();
}
zos.close();
}
/**
* 将给定的压缩文件进行解压,放到指定目录
* @param zipFilename 需要解压缩的文件
* @param dir 解压后文件存放的目录
*/
public void upZipFile(String zipFilename,String dir) throws Exception{
ZipInputStream zin=new ZipInputStream(new FileInputStream(zipFilename));
ZipEntry ze=null;
byte[] buf=new byte[1024];
while((ze=zin.getNextEntry())!=null){
System.out.println("unziping:"+ze.getName());
OutputStream os=new BufferedOutputStream(new FileOutputStream(getRealFileName(dir,ze.getName())));
int readLen=0;
while ((readLen=zin.read(buf, 0, 1024))!=-1) {
os.write(buf, 0, readLen);
}
os.close();
}
zin.close();
}
/**
* 根据给定的目录返回该文件夹下所有的文件(包括子目录) 如果给定的是文件则返回该文件
*
* @param file
* 给定的文件目录
* @return 所有文件的列表
*/
private static List<File> getFiles(File fileDir) {
List<File> listFiles = new LinkedList<File>();
// 判断给定的fileDir是否为文件,如果是则直接返回
if (fileDir.isFile()) {
listFiles.add(fileDir);
return listFiles;
}
// 如果是目录则遍历该目录
File[] files = fileDir.listFiles();
for (File file : files) {
if (file.isFile()) {
listFiles.add(file);
} else {
// 对方法进行递归调用
listFiles.addAll(getFiles(file));
}
}
return listFiles;
}
/**
* 给定根目录,返回另一个文件名的相对路径,用于zip文件中的路径
* @param file 实际的文件名
* @param baseDir 根目录
* @return
*/
private static String getRelativePath(File file, String baseDir) {
File base = new File(baseDir);
String filename = file.getName();
while(true){
file = file.getParentFile();
if(file==null)break;
if(file.equals(base))break;
else filename = file.getName() + "/" + filename;
}
return filename;
}
/**
* 给定根目录,返回一个相对路径所对应的实际文件名.
* @param baseDir 指定根目录
* @param absFileName 相对路径名,来自于ZipEntry中的name
* @return java.io.File 实际的文件
*/
public static File getRealFileName(String baseDir, String absFileName){
//判断是否有下级目录,如果没有则将该文件直接new出来
String[] dirs=absFileName.split("/");
File ret=new File(baseDir);
//有下级目录则先创建目录,再创建文件
if(dirs.length>1){
for (int i = 0; i < dirs.length-1;i++) {
ret=new File(ret, dirs[i]);
}
if(!ret.exists())
ret.mkdirs();
ret=new File(ret, dirs[dirs.length-1]);
return ret;
}
return new File(ret,absFileName);
}
}
发表评论
-
svn移植操作
2019-03-13 18:02 759导出 svnadmin load /data/svn ... -
使用linux远程登录另一台linux
2018-03-29 15:31 723ssh -l root 192.168.0.1 -
设置utfmb
2016-03-09 18:07 639show variables like 'character ... -
Linux- Nginx启动-停止-重启脚本
2016-01-12 10:17 1020Nginx 启动、重启、停止脚本 第一步 先运行命 ... -
linux 内存清理/释放命令
2015-11-12 16:02 11441.清理前内存使用情况 free -m 2.开始清理 ... -
Nginx [emerg]: bind() to 0.0.0.0:80 failed (98: Address already in use)
2015-10-15 14:11 1997Nginx [emerg]: bind() to 0.0.0 ... -
查看mysql主从配置的状态及修正 slave不启动问题
2015-10-14 13:48 33451、查看master的状态show master statu ... -
在freemarker中获取当前日期及时间比较
2015-09-15 18:39 8699在freemarker中获取当前日期:${.now}获取当前日 ... -
mysql中You can't specify target table for update in FROM clause错误
2015-07-22 13:37 558mysql中You can't specify tar ... -
Spring MVC拦截器+注解方式实现防止表单重复提交
2015-07-02 09:03 888原理:在新建页面中Session保存token随机码,当保存 ... -
用于tomcat7下面支持websocket
2015-06-30 12:01 724<!--StartFragment --> ... -
MYSQL的随机查询的实现方法
2015-05-17 17:51 517MYSQL的随机抽取实现方法。举个例子,要从tablename ... -
获取复利总收入
2015-03-08 17:51 833public static void main ... -
使用Spring进行统一日志管理 + 统一异常管理
2015-03-01 23:10 5114统一日志和异常管理配置好后,SSH项目中,代码以往散落的lo ... -
spring3.0异常处理进阶
2015-03-01 23:03 1487spring3.0开发不可避免要遇到异常处理,如果只有jsp ... -
Linux:find 按文件修改时间查找文件
2014-12-22 14:41 2329Linux:find 按文件修改时间查找文 ... -
mysql中查询生日提醒的日期相关的sql
2014-10-30 20:06 2726SELECT sysid,user_name,birthda ... -
apache 做代理 报如下错误:The proxy server received an invalid response from an upstream
2014-04-05 22:06 13810网站配置是apache+tomcat,tomcat没有报错, ... -
上一页 下一页SQL语句
2013-11-21 11:46 1056上一页 下一页SQL语句 string pr ... -
打包压缩
2013-11-10 19:58 859tar -zcvf ROOT_20131110.tar.gz ...
相关推荐
以下是一个基本的Java代码示例,演示如何解压缩ZIP文件: ```java import java.io.*; import java.util.zip.*; public class UnzipExample { public static void unzip(String zipFilePath, String destDirectory...
在Java编程语言中,解压缩ZIP文件是一项常见的任务,特别是在处理数据传输、文件打包和部署等场景下。本文将深入探讨如何使用Java API来解压缩ZIP文件,包括基本概念、核心类库以及具体实现步骤。 ZIP文件是一种...
首先,我们需要了解Java中的`java.util.zip`包,这个包提供了处理压缩文件的基本工具。在ZIP格式的压缩包处理中,我们主要会用到`ZipInputStream`和`ZipEntry`这两个类。`ZipInputStream`是用于读取ZIP文件的输入流...
在Java编程语言中,文件的压缩与解压缩是常见的操作,尤其在数据传输、存储优化以及备份场景下显得尤为重要。...通过上述知识点,开发者能够有效地在Java环境中进行ZIP文件的压缩与解压缩操作,满足实际项目需求。
一、Java打包压缩ZIP Java中的`java.util.zip`包提供了对ZIP文件的支持。主要涉及到的类有`ZipOutputStream`和`ZipEntry`。`ZipOutputStream`是用于创建ZIP文件的输出流,而`ZipEntry`则代表ZIP文件中的一个条目...
本话题主要聚焦于如何利用ant.jar来解压缩ZIP包。首先,你需要确保你的项目中已经引入了ant.jar。这通常可以通过Maven或Gradle等构建工具添加依赖来实现。如果你的项目不使用这些工具,你可以将ant.jar作为库文件...
java语言操作解压缩文件。 /** * 数据压缩 * * @param data * @return * @throws Exception */ public static byte[] compress(byte[] data) throws Exception { ByteArrayInputStream bais = new ...
在Java编程环境中,解压缩ZIP或RAR格式的文件是一项常见的任务,这主要涉及到I/O流、文件操作以及压缩和解压缩库的使用。本篇将深入讲解如何在Java中实现这个功能,同时会介绍一些相关的工具和源码。 首先,对于ZIP...
Java工具类ZIP解压缩Java工具类ZIP解压缩Java工具类ZIP解压缩
最后,`生成zip包代码.txt`和`解压缩zip包.txt`文件可能包含了具体的实现代码,而`需要用的jar包`可能是指在某些情况下,如使用第三方库时,可能需要引入额外的依赖项。例如,如果使用了Apache Commons Compress库,...
博文链接:https://peng-jian-ming.iteye.com/blog/190572
本篇文章将深入探讨如何在Android平台上解决Java ZIP库在解压缩中文文件时出现的乱码问题。 首先,我们要明白乱码问题的根源。在文件的压缩和解压缩过程中,文件名通常被编码为字节序列,这个序列取决于原始文件名...
本篇文章将详细讲解如何使用Java来解压缩ZIP格式的压缩文件,特别是那些包含中文文件名的压缩包。我们将探讨相关API的使用,以及解决中文文件名在解压过程中可能出现的问题。 1. **Java的压缩与解压缩库**: Java...
### Java解压缩ZIP文件:深度解析与实践 #### 核心知识点概览: - **Java I/O与网络数据流统一接口**:Java的1.1版本提供了统一的接口来处理I/O数据流与网络数据流,这使得数据的压缩、传输和解压缩变得简单而高效...
JAVA文件压缩与解压缩实践(源代码).zipJAVA文件压缩与解压缩实践(源代码).zipJAVA文件压缩与解压缩实践(源代码).zipJAVA文件压缩与解压缩实践(源代码).zipJAVA文件压缩与解压缩实践(源代码).zipJAVA文件压缩与解压缩...
本篇文章将深入探讨如何使用Java API来实现ZIP文件的解压缩,并提供详细的注释帮助理解代码逻辑。 首先,我们需要了解Java中的`java.util.zip`包,这个包提供了处理压缩文件格式(如ZIP和GZIP)所需的所有类。其中...
在Java编程语言中,文件的压缩与解压缩是常见的数据处理操作,特别是在数据传输、存储优化和备份场景中。本实践项目围绕这个主题展开,包括源代码和相关的论文,为学习者提供了深入理解和应用Java压缩库的机会。以下...