逐行读取文件内容并修改文件
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.FileReader;
import java.io.IOException;
import java.io.File;
import java.util.*;
import java.lang.String;
public class UpdateFile {
public static void main(String [] args){
try{
//读取给定目录下的所有文件
File dir = new File("G:\\oldPlayer");
File[] files = dir.listFiles();
if (files == null)
return;
//文件名
String fileName = "";
for (int i = 0; i < files.length; i++) {
//判断此文件是否是一个文件
if (!files.isDirectory()) {
System.out.println(files.getName());
fileName = files.getName();
modifyFile(fileName);
}
}
}catch(Exception ex){
ex.printStackTrace();
System.out.println("file read or write error");
}
}
public static void modifyFile(String fileName) {
try{
//文件路径
String filePath = "";
//修改后新文件路径
String newFilePath = "";
filePath = "G:\\oldPlayer\\" + fileName;
//读取文件
BufferedReader File_pwd=new BufferedReader(new FileReader(filePath));
//将文件内容按行存到list;
List<String> list=new ArrayList<String>();
//声明读文件行的临时变量
String temp;
do{
//按行循环读取文件
temp=File_pwd.readLine();
System.out.println("读取到的原文件:"+temp);
list.add(temp);
//把读取到的行存入数组变量
}while(temp!=null);
File_pwd.close();
//将内容写到新文件
newFilePath = "G:\\newPlayer\\" + fileName;
BufferedWriter File_bak=new BufferedWriter(new FileWriter(new File(newFilePath)));
String s=new String();
//为注释行的标示
int commentFlag = 0;
for(int j=0;j<list.size()-1;j++){
//使用循环把行字符串取出来,并调用replaceall函数,对字符内容进行正则表达式替换
s=list.get(j);
if (s.indexOf("//") >= 0 || s.indexOf("*") >= 0) {
s = s + " ";
commentFlag = 1;
} else if (!"".equals(s.trim())) {
commentFlag = 0;
}
//如果前一行为注释行,该行为空行则删除
if (commentFlag == 1) {
if (!"".equals(s.trim())) {
s.replace(" ", " ");
File_bak.write(s+"\n");
}
} else {
s.replace(" ", " ");
File_bak.write(s+"\n");
}
}
//必须先刷新,才能用close关闭
File_bak.flush();
File_bak.close();
System.out.println("file write success");
}catch(IOException ex){
ex.printStackTrace();
System.out.println("file read or write error");
}
}
}
# 上一篇: IETester调试工具
# 下一篇: 持久化层的Java对象可处于哪些状态?这些状态有哪些特征?
文章评论 (0)
暂无评论