读文件问题

WoMaJia 2008-12-31 09:40:09

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();
}
...全文
176 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
WoMaJia 2008-12-31
  • 打赏
  • 举报
回复
原来如此!多谢各位!
胡须棉花糖 2008-12-31
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 jiangnaisong 的回复:]
答:问题的根源是:
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();
[/Quote]
正解
chenchuanfeng001 2008-12-31
  • 打赏
  • 举报
回复
将BufferedWriter writer = new BufferedWriter(new FileWriter(file));
移到read.close();之后。
hbgzg3006 2008-12-31
  • 打赏
  • 举报
回复
别把读取后的文件放在原来的文件中就可以了。要想对同一个文件读写用RandomAccessFile
云上飞翔 2008-12-31
  • 打赏
  • 举报
回复
答:问题的根源是:
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();

62,616

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧