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文件");
}
}
从源码包中抽取java文件(保持包路径)
最新推荐文章于 2019-07-29 21:19:43 发布