简单记录的一个容易出错的小问题:
当我们使用Java处理文件时,经常会将输入流、输出流初始化在一起,(习惯方式)
BufferedReader br = null;
PrintWriter pw = null;
try{
br = new BufferedReader(new FileReader(file));
pw = new PrintWriter(file);
//读取文件内容代码
//写入文件代码
}catch(){
}finally{
关闭流
}
这种写法会发现该文件读取进来的内容已经为空,写出时当然为空了,最终和自己的预期不一致,然而程序也没有任何报错。后来了解到输入、输出流不同一起操作同一个文件,需改为输入流操作后,再使用输出流操作。即修改为如下代码:
BufferedReader br = null;
PrintWriter pw = null;
try{
br = new BufferedReader(new FileReader(file));
//读取文件内容代码
pw = new PrintWriter(file);
//写入文件代码
}catch(){
}finally{
关闭流
}
这样,就可以正常读取文件内容,处理后再使用输入流将文件输出到该文件。