1.解析cfg或properties配置文件

讲配置文件,读取,并封装成为map类型数据

/**
* 解析cfg文件
*
* @param cfgFile
* @return
*/
public static Map<String, Object> readCfg(FileInputStream cfgFile) {
Properties prop = new Properties();
Map<String, Object> map = new HashMap<String, Object>(); try {
// 读取cfg属性文件
InputStream in = new BufferedInputStream(cfgFile);
prop.load(new InputStreamReader(in, "GBK")); /// 加载属性列表
Iterator<String> it = prop.stringPropertyNames().iterator();
while (it.hasNext()) {
String key = it.next();
map.put(key, prop.getProperty(key).replaceAll("\"", "").replaceAll(";", ""));
}
in.close();
} catch (Exception e) {
System.out.println(e);
}
return map;
}

2、文件夹遍历

 /**
* 文件夹遍历
* @param path
* @throws Exception
*/
public static void traverse(String path,String parent_id) throws Exception {
System.out.println("path---->" + path);
File file = new File(path);
Map<String, Object> map = new HashMap<String, Object>();
if (file.exists()) {
File[] files = file.listFiles();
if (files.length == 0) {
System.out.println("文件夹是空的!");
return;
} else {
String k_id = UuidUtil.get32UUID(); for (File file2 : files) {
if (file2.isDirectory()) {//文件夹 traverse(file2.getAbsolutePath(),parent_id);
parent_id = k_id;
} else if (file2.isFile()){//文件
if (file2.getName().endsWith(".cfg")) {
System.out.println("文件:" + file2.getAbsolutePath());
map = readCfg(new FileInputStream(file2));
System.out.println("-------------"+file2.getAbsolutePath()+"--start-----------");
map.put("path_url", getUrlPath(file2.getAbsolutePath()));
map.put("k_id", k_id);
map.put("parent_id", parent_id);
for (String key : map.keySet()) {
System.out.println(key+"--->"+map.get(key));
}
parent_id = k_id;
System.out.println("-------------"+file2.getAbsolutePath()+"--end-----------");
}
}
}
}
} else {
System.out.println("文件不存在!");
}
}

3、解压zip

 /**
* 解压zip
*
* @param zipFile
* @param descDir
* @throws Exception
*/
public static void unZipFiles(File zipFile, String descDir) throws Exception {
System.out.println("******************解压开始********************");
File pathFile = new File(descDir);
if (!pathFile.exists()) {
pathFile.mkdirs();
}
ZipFile zip = new ZipFile(zipFile);
for (Enumeration entries = zip.entries(); entries.hasMoreElements();) {
ZipEntry entry = (ZipEntry) entries.nextElement();
String zipEntryName = entry.getName();
InputStream in = zip.getInputStream(entry);
String outPath = (descDir + "/" + zipEntryName).replaceAll("\\*", "/");
// 判断路径是否存在,不存在则创建文件路径
File file = new File(outPath.substring(0, outPath.lastIndexOf('/')));
if (!file.exists()) {
file.mkdirs();
}
// 判断文件全路径是否为文件夹,如果是上面已经上传,不需要解压
if (new File(outPath).isDirectory()) {
continue;
}
OutputStream out = new FileOutputStream(outPath);
byte[] buf1 = new byte[1024];
int len;
while ((len = in.read(buf1)) > 0) {
out.write(buf1, 0, len);
}
if ((zipEntryName.trim().lastIndexOf("/")) == -1) { }
in.close();
out.close();
} System.out.println("******************解压完毕********************");
System.out.println("******************遍历文件夹********************");
String parent_id = "";
traverse(descDir,parent_id);
}

4,main方法

 
private static ZipFile zf;
private static ZipInputStream zin;
public static void main(String[] args) throws Exception {
try {
File file = new File("D:\\CCC.zip");
unZipFiles(file, "D:\\CCC");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

代码下载地址:

http://download.csdn.net/download/u010308359/10143689

Java zip解压,并遍历zip中的配置文件 .cfg或.properties的更多相关文章

  1. Java解压上传zip或rar文件,并解压遍历文件中的html的路径

    1.本文只提供了一个功能的代码 public String addFreeMarker() throws Exception { HttpSession session = request.getSe ...

  2. 原生java 压缩解压zip文件

    import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import ...

  3. 解决ubuntu中zip解压的中文乱码问题

    转自解决ubuntu中zip解压的中文乱码问题 在我的ubuntu12.10中,发现显示中文基本都是正常的,只有在解压windows传过来的zip文件时,才会出现乱码.所以,我用另一个方法解决中文乱码 ...

  4. JAVA zip解压 MALFORMED 错误

    最近在在使用zip 解压时,使用JDK1.7及以上版本在解压时,某些文件会报异常 Exception in thread "main" java.lang.IllegalArgum ...

  5. linux中tar命令(打包、压缩、解压)、zip和unzip、rar多种压缩文件

    一.名词解释 打包:将一大堆文件或目录变成一个总的文件[tar命令] 压缩:将一个大的文件通过一些压缩算法变成一个小文件[gzip,bzip2等] Linux中很多压缩程序只能针对一个文件进行压缩,这 ...

  6. java批量解压文件夹下的所有压缩文件(.rar、.zip、.gz、.tar.gz)

    // java批量解压文件夹下的所有压缩文件(.rar..zip..gz..tar.gz) 新建工具类: package com.mobile.utils; import com.github.jun ...

  7. Java压缩/解压.zip、.tar.gz、.tar.bz2(支持中文)

    本文介绍Java压缩/解压.zip..tar.gz..tar.bz2的方式. 对于zip文件:使用java.util.zip.ZipEntry 和 java.util.zip.ZipFile,通过设置 ...

  8. java解压多目录Zip文件(解决中文乱码问题)--转载

    原文地址:http://zhangyongbo.iteye.com/blog/1749439 import java.io.BufferedOutputStream; import java.io.F ...

  9. Linux中解压、压缩 ZIP文件

    解压 unzip -o -d /home/v-gazh myfile.zip # 把myfile.zip文件解压到 /home/v-gazh/ # -o:不提示的情况下覆盖文件: # -d:-d /h ...

随机推荐

  1. 十天精通CSS3(7)

    :enabled选择器 在Web的表单中,有些表单元素有可用(“:enabled”)和不可用(“:disabled”)状态,比如输入框,密码框,复选框等.在默认情况之下,这些表单元素都处在可用状态.那 ...

  2. [vue]实现父子组件数据双向绑定

    参考: http://www.cnblogs.com/xxcanghai/p/6124699.html <!DOCTYPE html> <html lang="en&quo ...

  3. Bellon(多么痛的领悟)

    尼玛  我今天刚刚知道什么是负权回路 任意相连的无向图之间都是回路!!! 囧了一天了,算是看出来了,渣比 A====B 则A能到B且B能到A,这就是一个回路.

  4. 0627-File-163

    print('创建一个文件向其中写入信息,再读取出写入的信息-------------------------------------') f = open('E:\\foo4.txt','w+') ...

  5. webapi 返回json及route设置

    1.返回json 修改App_Start/webapiconfig public static void Register(HttpConfiguration config) { // Web API ...

  6. Object-C-NSArray

    NSArray *fruitArray=[[NSArray alloc] initWithObjects:@"apple",@"banana",@"p ...

  7. sublime工具安装完成后使用Emmet加快前端页面的开发速度

    sublime的安装这里就不介绍了,很多人看到有些人在使用sublime时使用了一些快捷键非常快速的搭建一个简单的html,简单的结构就打起来了.不需要手动一个标签一个标签写. 其实是他们安装了Emm ...

  8. AI+教育落地,百度大脑如何让校园更智能?

    人工智能作为影响社会底层技术革命逐渐向传统行业渗透,“AI+”已经替代“互联网+”成为创业创新的新引擎,出人意料的是,在AI在教育业的率先落地并且相当火爆. 现在,人工智能教育已成为从业者心目中的“教 ...

  9. python之路----TCP与UDP

    TCP import socket #tcp协议 sk = socket.socket() # 买手机 创建一个socket对象 sk.bind(('127.0.0.1',8080)) # 给serv ...

  10. c++第五天:默认初始化

    1.算数类型.(整型和浮点型) 类型决定了数据所占的比特数以及该如何解释这些比特的内容. 练习2.1... 各种类型在计算机中所占的比特数不同,解释方法不同.有符号要花费一个比特存储符号,最大正值要比 ...