import
java.io.
*
;
import
java.util.
List
;
public
class
UpdateFile {
private String mCWD;
private String mOldPkgName;
private String mNewPkgName;
UpdateFile(String cwd, String oldPkg, String newPkg) {
mCWD
=
cwd;
mOldPkgName
=
oldPkg;
mNewPkgName
=
newPkg;
}
public void updateFiles() {
updateFiles(mCWD);
}
private void updateFiles(String
dir
) {
File
file
=
new
File
(
dir
);
File
[] files
=
file
.listFiles();
for
(
File
f : files) {
if
(f.isDirectory()) {
updateFiles(f.getAbsolutePath());
}
else
{
System.out.println(f.getAbsolutePath());
update(f.getAbsolutePath());
}
}
}
private void update(String filePath) {
BufferedReader br
=
null;
String line
=
null;
StringBuffer buf
=
new StringBuffer();
try
{
/
/
根据文件路径创建缓冲输入流
br
=
new BufferedReader(new FileReader(filePath));
/
/
循环读取文件的每一行, 对需要修改的行进行修改, 放入缓冲对象中
int
lineNum
=
1
;
while
((line
=
br.readLine()) !
=
null) {
/
/
此处根据实际需要修改某些行的内容
if
(line.contains(mOldPkgName)) {
String update
=
line.replaceAll(mOldPkgName, mNewPkgName);
buf.append(update);
System.out.println(
" ["
+
lineNum
+
"]"
+
line);
System.out.println(
" ["
+
lineNum
+
"]"
+
update);
System.out.println();
}
/
/
如果不用修改, 则按原来的内容回写
else
{
buf.append(line);
}
buf.append(
"\n"
);
lineNum
+
+
;
}
} catch (Exception e) {
e.printStackTrace();
}
finally
{
/
/
关闭流
if
(br !
=
null) {
try
{
br.close();
} catch (IOException e) {
br
=
null;
}
}
}
BufferedWriter bw
=
null;
try
{
/
/
根据文件路径创建缓冲输出流
bw
=
new BufferedWriter(new FileWriter(filePath));
/
/
将内容写入文件中
bw.write(buf.toString());
} catch (Exception e) {
e.printStackTrace();
}
finally
{
/
/
关闭流
if
(bw !
=
null) {
try
{
bw.close();
} catch (IOException e) {
bw
=
null;
}
}
}
}
}