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(); } }
程式碼下載地址: