日期:2014-05-20  浏览次数:20751 次

关于读取文件时向文件中添加一行信息的问题,到底是怎么回事啊??!

public static void addBookedMeetingRoom(BookedMeetingRoom bmr) throws CRRSInitializationException{
String fileName=BOOKEDMEETINGROOM_FILEPATH;



try{ 
BufferedReader br=new BufferedReader(new FileReader(fileName));
PrintWriter pw = new PrintWriter(new FileWriter(fileName));
String line=br.readLine();
/*以上这三行代码,如果把第三行‘String line=br.readLine()’放在中间,就能在文件末尾添加信息,而放在PrintWriter后面却只显示当前信息,不能再末尾添加,为什么?*/
while(line!=null){
pw.println(line);
line=br.readLine();
}

pw.println(bmr.produceToFileString()+NEW_LINE);
pw.close();
br.close();

}
catch(FileNotFoundException fnfe){
System.out.print("系统找不到指定的文件:"+fileName);

catch (IOException e) {
System.out.print("读取文件时出错:"+fileName);
}
}

------解决方案--------------------
你如果想要在文件末尾添加信息,那么应该考虑用PrintWriter pw = new PrintWriter(new FileWriter(fileName,true));这样pw向流中写入信息的时候就是在文件末尾添加

如果你只是添加文本内容信息的话,其实用FileWriter就可以做到了