我想打开一个.java文本文件并在文件顶部插入新的包名称。经过对此的一些研究后,我发现我必须创建一个新文件才能插入新的Package名称,并从我的旧文件中复制所有内容。到现在为止还挺好。将文件内容复制到新文件中删除旧文件,将新文件重命名为旧文件
1)第一个问题要么我没有做正确的,但我怎么能够以正确的方式复制行结尾?我有点感觉,通过复制我失去了他们,不知道,但因为我更专注于我的其他问题
2)我想重命名的文件不会重命名,因此导致问题是,我想要插入新软件包的所有文件的命名都是相同的,因此我只剩下名称不正确的最后一个文件。在所有的损失所导致我的其他文件
private static String insertPackage(File file) throws IOException {
//creating package name
File parent = new File(file.getParent());
String packageName = "package " + parent.getName() + ";\n";
//copy old file
File buffer = new File(parent.getPath()+"\\buffer.java");
Charset charset = Charset.forName("UTF-8");
BufferedReader br = Files.newBufferedReader(file.toPath(),charset);
BufferedWriter bw = Files.newBufferedWriter(buffer.toPath(),charset);
bw.write(packageName,0,packageName.length());
String line;
while((line = br.readLine()) != null){
if(!line.startsWith("package ")) {
bw.write(line, 0, line.length());
}
}
//rename new file
// String filepath = file.getPath();
// File rename = new File(filepath);
boolean renamed = true;
if(file.delete()) {
renamed = buffer.renameTo(file);
}
bw.flush();
bw.close();
br.close();
if(!renamed){
return file.getPath();
}
return "";
}
返回值是只是为了在万一出现故障的名称。所以现在一切。
这只是插入软件包名称,删除旧的软件包名称和将其他所有内容复制到新文件中的功能。之后,它应该删除旧文件并重命名新文件。
你知道,IDE可以做这种重构,而无需编写脚本吗? :) – zapl