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
}
}
}
分享到:
相关推荐
这两个项目也都开始试图向其他操作系统上的 Java 应用程序提供对 USB 设备的访问,尽管它们都还没有开发出可以使用的包(参阅 参考资料 中有关本文中讨论的这两个项目及其他项目的资料)。 在本文中,将对 jUSB 和 JSR...
学生提问:当我们使用编译C程序时,不仅需要指定存放目标文件的位置,也需要指定目标文件的文件名,这里使用javac编译Java程序时怎么不需要指定目标文件的文件名呢? 13 1.5.3 运行Java程序 14 1.5.4 根据...
这些环境变量对Java开发者至关重要,因为它们告诉操作系统如何找到Java开发工具(如JDK)的位置,以便能够执行Java程序、编译Java源代码以及运行Java应用程序。下面将详细介绍在XP系统下设置Java环境变量的步骤和...
2. 单击“添加”按钮,命名,在“扩展名”部分输入对应扩展名(不带“.”) 3. 浏览/输入 STX(语法文件部分) 以及 ACP(自动完成文件部分)。 添加剪辑库文件(*.CTL) 复制相应 *.CTL 文件到软件安装目录,重新...
这有点向java中的import语句,多数类在使用之前需要引入,但引入了类并不意味着这些在使用,每个creator和converter需要有个id属性来允许以后进行引用. 配置文件的allow部分定义哪些类可以建立和转换,每个被准许的类都...
2. 单击“添加”按钮,命名,在“扩展名”部分输入对应扩展名(不带“.”) 3. 浏览/输入 STX(语法文件部分) 以及 ACP(自动完成文件部分)。 添加剪辑库文件(*.CTL) 复制相应 *.CTL 文件到软件安装目录,重新...
2. 单击“添加”按钮,命名,在“扩展名”部分输入对应扩展名(不带“.”) 3. 浏览/输入 STX(语法文件部分) 以及 ACP(自动完成文件部分)。 添加剪辑库文件(*.CTL) 复制相应 *.CTL 文件到软件安装目录,重新...
2. **避免批量更新生产数据**:批量更新操作可能会影响到其他依赖该数据的应用,应该在测试环境中测试无误后再执行。 3. **修改数据之前必须有备份习惯**:防止意外情况导致数据丢失。 4. **业务需要修改生产数据**...
支持不同文件类型的注释符号,例如在Java中使用 `//` 或 `/* */`。 - **Ctrl+[**: 移动光标到当前所在代码的花括号开始位置。 - **Ctrl+]**: 移动光标到当前所在代码的花括号结束位置。 #### 版本控制 - **Ctrl+K**...
- **应用领域**:适用于需要高效数据存储与检索的应用程序。 - **API 接口**:支持多种编程语言如 C、C++、Java、Perl、Tcl、Python 和 PHP。 #### 2. Cursor API - **1.1 Introduction** - **定义**:游标...