读书人

从源码包中抽取java资料(保持包路径)

发布时间: 2012-09-09 09:27:54 作者: rapoo

从源码包中抽取java文件(保持包路径)

package com.yangxiutian;import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.FileReader;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.util.ArrayList;import java.util.List;public class PackageUtil{    public static void copyFile(String tarPath, File srcPath)            throws IOException    {        File tarPathFile = new File(tarPath);//目标虚拟路径        File tarFile;//目标文件        if (!tarPathFile.exists())        {            tarPathFile.mkdirs();            tarFile = new File(tarPath + srcPath.getName());            tarFile.createNewFile();            InputStream is = new FileInputStream(srcPath);            OutputStream os = new FileOutputStream(tarFile);            byte[] buff = new byte[1024];            int reads = 0;            while ((reads = is.read(buff)) != -1)            {                os.write(buff, 0, reads);            }            os.close();            is.close();        }    }        /**     *  遍历java文件     */    public static void listAllFile(File root, List<File> allFiles)    {        File[] files = root.listFiles();        for (File temp : files)        {            if (temp.isDirectory())            {//是目录,递归调用                listAllFile(temp, allFiles);            }            else            {                if (temp.getName().endsWith(".java"))                {                    allFiles.add(temp);                }            }                    }    }        public static void main(String[] args) throws IOException    {        String basePath = "C:\\Documents and Settings\\Administrator\\桌面\\package\\";        String path;//路径,不包含基路径        String srcPath = "C:\\Documents and Settings\\Administrator\\My Documents\\Downloads\\axiom-1.2.11-source-release\\axiom-1.2.11\\";        File root = new File(srcPath);//        List<File> list = new ArrayList<File>();        listAllFile(root, list);        for (File temp : list)        {            BufferedReader br = new BufferedReader(new FileReader(temp));            while (true)            {//取出package信息                String line = br.readLine();                if (line.contains("package "))                {                    path = line.replace("package ", "").replace(".", "/")//路径org/apache/axiom/testutils/io/ 前面不带后面带                             .replace(";", "/");                    copyFile(basePath + path, temp);//复制文件                    System.out.println(basePath + path);                    break;                }            }        }        System.out.println(list.size() + "个java文件");    }}
?

读书人网 >编程

热点推荐