麻烦大家帮忙看一下这段程序,向一个文件中写入文字之后再替换其中某些内容,不知为什么,第一次执行的时候一切正常,而从第二次开始,每次执行都是把修改后的文件直接累加到原文件后面了,我只想要修改后的,怎么办?该修改哪里,怎么修改?谢谢。
protected String fileName;
private static String filename= "d:\\project\\ServUDaemon.ini";
static File aFile = new File(filename);
private static Vector vec = new Vector();
void jButton1_actionPerformed(ActionEvent e) {
PrintWriter out = null;
BufferedReader in = null;
try {
in = new BufferedReader(new FileReader(aFile));
}catch (Exception exx) {
exx.printStackTrace(System.out);
}
try {
String s = in.readLine();
String original = "\\[Domain1\\]"; //被替换的文字
String replacestr = original + replacestring //待替换文字
File file = new File(filename); //开始在文件末尾加入内容
BufferedWriter out1 = new BufferedWriter(new FileWriter(file, true));
String appendstr = "aaaaaaa";
out1.write(String.valueOf(appendstr));
out1.close();
out1 = null;
file = null; //在文件末尾加入内容结束
while (s != null) { //开始查找并替换内容
s = s.replaceAll(original ,replacestr);
vec.add(s);
s = in.readLine();
}
in.close();
try {
out = new PrintWriter(new FileWriter(aFile, false));
}
catch (IOException ex) {
}
for (int i = 0; i < vec.size(); i++) {
out.println( (String) vec.get(i));
System.out.println( (String) vec.get(i));
}
out.close();
}
catch (IOException ex1) {
}
}
protected String fileName;
private static String filename= "d:\\project\\ServUDaemon.ini";
static File aFile = new File(filename);
private static Vector vec = new Vector();
void jButton1_actionPerformed(ActionEvent e) {
PrintWriter out = null;
BufferedReader in = null;
try {
in = new BufferedReader(new FileReader(aFile));
}catch (Exception exx) {
exx.printStackTrace(System.out);
}
try {
String s = in.readLine();
String original = "\\[Domain1\\]"; //被替换的文字
String replacestr = original + replacestring //待替换文字
File file = new File(filename); //开始在文件末尾加入内容
BufferedWriter out1 = new BufferedWriter(new FileWriter(file, true));
String appendstr = "aaaaaaa";
out1.write(String.valueOf(appendstr));
out1.close();
out1 = null;
file = null; //在文件末尾加入内容结束
while (s != null) { //开始查找并替换内容
s = s.replaceAll(original ,replacestr);
vec.add(s);
s = in.readLine();
}
in.close();
try {
out = new PrintWriter(new FileWriter(aFile, false));
}
catch (IOException ex) {
}
for (int i = 0; i < vec.size(); i++) {
out.println( (String) vec.get(i));
System.out.println( (String) vec.get(i));
}
out.close();
}
catch (IOException ex1) {
}
}
写成private Vector vec;
然后把vec =new Vector();放到BufferedReader in = null; 的后面。