File file = new File("E:\\a\\update.log");
StringBuffer sb = new StringBuffer();
String s = new String();
try {
BufferedReader read = new BufferedReader(new FileReader(file));
BufferedWriter writer = new BufferedWriter(new FileWriter(file));
while((s = read.readLine())!=null){
sb.append(s);     \\没有读到原来文件里的内容,
sb.append("\r\n");\\运行后文件里只有一行"=========" ,哪里错了?
}
read.close();
sb.append("==========\r\n");
writer.write(sb.toString());
writer.close();

} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException ee){
ee.printStackTrace();
}

解决方案 »

  1.   

    答:问题的根源是:
     BufferedReader read = new BufferedReader(new FileReader(file));
     BufferedWriter writer = new BufferedWriter(new FileWriter(file));
    对同一个文件既是FileReader"读",同时又 FileWriter"写",这会清空文件内容的.
    如何改正?FileWriter以添加方式"写"就行了
     BufferedWriter writer = new BufferedWriter(new FileWriter(file,true));
    另外建议在writer.close();之前加上:writer.flush();
      

  2.   

    别把读取后的文件放在原来的文件中就可以了。要想对同一个文件读写用RandomAccessFile
      

  3.   

    将BufferedWriter writer = new BufferedWriter(new FileWriter(file));
    移到read.close();之后。