A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 严明 初级黑马   /  2012-6-25 13:41  /  2240 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

用字符流读取文件时,
BufferedWiter bufw =  new BufferedWriter (new FileWriter("demo.txt"));
我知道BufferedWiter不能直接打开文件,它只能给已经打开的文件写入缓冲流
但是可不可以这样:
BufferedWiter bufw =  new BufferedWriter (new File("demo.txt"));
还有一点:
BufferedReader中有一个方法readLine()读取一个文本行,为什么BufferedWriter中没有对应的写入一个文本行的方法?如果想一次写入一个文本行 的效果,怎样实现呢?

3 个回复

正序浏览
小张童鞋 发表于 2012-6-25 14:01
首先,读取功能是Reader和InputStream 才拥有的,写和输出是Writer和OutputStream,你概念搞错了
2,
BufferedW ...

Think you!
回复 使用道具 举报
new BufferedWriter (new File("demo.txt"));,不可以,应为 BufferedWriter 需要传入一个字符输出流。
而 ;new File("demo.txt"))只是创建了一个文件和目录的对象。
BufferedWrite 的write方法可以写入一个字符串,
当readLine方法读出一行时,write方法,可以一次写入
回复 使用道具 举报
本帖最后由 小张童鞋 于 2012-6-25 14:04 编辑

首先,读取功能是Reader和InputStream 才拥有的,写和输出是Writer和OutputStream,你概念搞错了
2,
BufferedWiter bufw =  new BufferedWriter (new FileWriter("demo.txt"));
这句话的意思是将文件demo.txt放进一个输出流里面,再用BufferedReader或者BufferedInputStream来装饰它,进行功能强化.而你的
BufferedWiter bufw =  new BufferedWriter (new File("demo.txt"));
新建了个一个文件demo.txt,还没有放进读取流里面就直接用Buffered来装饰了,这显示是不对的.
3,你的第二个问题,调用flush()方法就搞定了.
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马