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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 孙天 黑马帝   /  2012-3-25 22:57  /  2794 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

用FileWriter不好吗

3 个回复

倒序浏览
FileWriter提供的write()方法中的参数有限制,只能输出一些指定的类型。
而PrintWriter的write()可以提供print()方法,此方法里面的参数可以是各种类型(输出时自动转换),它们是字符串(String)、字符数组(char[])、字符(char)、整数(int)、长整数(long)、浮点数(float)、双精度浮点数(double)、布尔值(boolean),更加方便程序的书写。

写文件最佳组合
PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(filename)))
PrintWriter 提供print系方法
BufferedWriter 提供缓冲,用以加速
FileWriter 用于写文件

PrintWriter以字符为单位,支持汉字,
OutputStreamWriter以字节为单位,不支持汉字,

PrintWriter和BufferedWriter都是继承java.io.Writer,所以很多功能都一样。不过PrintWriter提供println()方法可以写不同平台的换行符,而BufferedWriter可以任意设定缓冲大小。
OutputStream可以直接传给PrintWriter(BufferedWriter不能接收),如:
PrintWriter out
= new PrintWriter(new BufferedOutputStream(new FileOutputStream("foo.out")));
或者用OutputStreamWriter来将OutputStream转化为Writier.这时就可以用BufferedWriter了。
API documents中都写的很清楚了。
回复 使用道具 举报
PrintWriter呢,叫格式化打印输出流,
就是向指向该目标文本文件的输出流中打印你想打印的东西,在将你要打印的东西打印完了过后,
你再调用这个类的.flush()方法就可以把输出流中的东西刷进目标文本文件中
不同点:
就是当前者的自动清空缓冲区的功能被使能时(构造函数中autoFlush置为true),仅当println()方法被调用时才自动清缓冲区,而不是像PrintStream一样遇到一个换行符就清缓冲。
回复 使用道具 举报
printwriter 提供了两个非常好用的写 方法 print() 和 println()  print() 往流中写的是不带换行的数据(字符), 另一个是呆换行的,比较好用  谁用谁知道啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马