import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import FrequentlyUsedClasses.FileList;
public class AddPackageString {
static ArrayList<File> fileList = new ArrayList<File>();
public static void main(String[] args) {
File file = new File("D:/DSHWorkSpace/msb/classes/io");
System.out.println(getAvailablePath(file));
getFiles("D:/DSHWorkSpace/msb/src");
getFiles("D:/DSHWorkSpace/ThinkInJava/src");
for(File fileT:fileList){
System.out.println(getPackageName(fileT, "src"));
}
//copyFileAndAddPackageName(new File("d:\\Noname1.java"));
}
/**
* @return
*/
private static String getAvailablePath(File file){
return file.getPath().replace('\\', '/');
}
/**
* @param file
* @param root
* @return
*/
private static String getPackageName(File file,String root){
int indexOfPackageName = file.getParent().indexOf(root)+root.length()+1;
String packageName = file.getParent().substring(indexOfPackageName);
packageName = packageName.replace('\\', '.');
return packageName;
}
/**
* 返回某个文件夹下所有的文件
* @return
*/
public static void getFiles(String path){
File file = new File(path);
File[] files = file.listFiles();
if(files==null){
return ;
}
else{
for (int i = 0; i < files.length; i++) {
if(files[i].isDirectory()){
System.out.println(getAvailablePath(files[i]));
getFiles(getAvailablePath(files[i]));
}else if(files[i].getName().lastIndexOf(".java")!=-1)
//copyFileAndAddPackageName(files[i]);
fileList.add(files[i]);
System.out.println(files[i].getAbsolutePath().replace('\\', '/'));
}
}
}
/**把源文件复制到d:/temp.java中 然后加入package 复制回来
* @param file
*/
public static void copyFileAndAddPackageName(File file){
try {
int b;
int replaceCounter=0;
int importStringCounter=0;
String packageName = getPackageName(file, "src");
File fileTemp = new File("d:/temp.java");
FileReader fr = new FileReader(file);
FileWriter fw = new FileWriter(fileTemp);
fw.write("package "+packageName+";");
while((b = fr.read())!=-1){
fw.write(b);
}
fr.close();
fw.close();
FileReader fr2 = new FileReader(fileTemp);
FileWriter fw2 = new FileWriter(file);
BufferedReader br = new BufferedReader(fr2);
BufferedWriter bw = new BufferedWriter(fw2);
String s;
while((s = br.readLine())!=null){
System.out.println(s);
int packageIndex = s.lastIndexOf("package ");
if(packageIndex!=-1&&importStringCounter==0){
s = s.substring(packageIndex);
s= s.substring(s.indexOf(";")+1);
if(replaceCounter==0){
s = "package "+packageName+"; "+s.trim();
replaceCounter++;
}
}
if(!s.trim().equals(""))
{
if(s.indexOf("import ")!=-1)
importStringCounter++;
bw.write(s);
bw.write("\r");
}
}
bw.close();
br.close();
fw2.close();
fr2.close();
} catch (Exception e) {
// TODO: handle exception
}
}
}