问题是这样:我先对一个文件进行写操作代码如下:
BufferedWriter bw=null;
FileWriter fw=null;
try {
for(XtHmd x:lxthmd){
StringBuffer sb=new StringBuffer();
sb.append("11111").append("|")
.append(System.getProperty( "line.separator"));
fw=new FileWriter(f,true);
bw=new BufferedWriter(fw);
bw.write(sb.toString());
bw.flush();
}
} catch (IOException e) {
e.printStackTrace();
log.logError("写文件失败",e);
}finally{
try {
if(null!=bw){
bw.close();
fw.close();
bw=null;
fw=null;
}
} catch (IOException e) {
e.printStackTrace();
}
}
然后对改文件进行改名:
newFile=new File(file.getParent()+File.separator+"allMSG11"+BMD+".txt");
//文件改名
boolean bl=file.renameTo(newFile);
System.out.println(bl);
这里一直返回false;我不写直接改名是可以的希望有人能解决
BufferedWriter bw=null;
FileWriter fw=null;
try {
for(XtHmd x:lxthmd){
StringBuffer sb=new StringBuffer();
sb.append("11111").append("|")
.append(System.getProperty( "line.separator"));
fw=new FileWriter(f,true);
bw=new BufferedWriter(fw);
bw.write(sb.toString());
bw.flush();
}
} catch (IOException e) {
e.printStackTrace();
log.logError("写文件失败",e);
}finally{
try {
if(null!=bw){
bw.close();
fw.close();
bw=null;
fw=null;
}
} catch (IOException e) {
e.printStackTrace();
}
}
然后对改文件进行改名:
newFile=new File(file.getParent()+File.separator+"allMSG11"+BMD+".txt");
//文件改名
boolean bl=file.renameTo(newFile);
System.out.println(bl);
这里一直返回false;我不写直接改名是可以的希望有人能解决
参考
http://www.cnblogs.com/happy200318/archive/2011/07/11/2102791.html
import java.io.IOException;public class Fileremove {
public static void main(String agrs[]) {
File f = new File("d:\\test.txt");
if (f.exists()) {
f.renameTo(new File("d:\\mmm.txt"));
} else { try {
f.createNewFile(); } catch (IOException e) {
e.printStackTrace();
} }
}
}
for(XtHmd x:lxthmd){
StringBuffer sb=new StringBuffer();
sb.append("11111").append("|")
.append(System.getProperty( "line.separator"));
fw=new FileWriter(f,true);
bw=new BufferedWriter(fw);
bw.write(sb.toString());
bw.flush();}
是什么情况导致你需要在for循环里面去创建FileWriter和BufferedWirter呢?把这两句放到for循环外面应该就好了。
你可以try...finally放在循环外,或者只打开一次bw,每次循环只是追加内容而已try {
fw=new FileWriter(f,true); //放在循环外,打开一次就可以了
bw=new BufferedWriter(fw);
for(XtHmd x:lxthmd){
StringBuffer sb=new StringBuffer();
sb.append("11111").append("|")
.append(System.getProperty( "line.separator"));
//fw=new FileWriter(f,true);
//bw=new BufferedWriter(fw);
bw.write(sb.toString());
bw.flush();}