PrintWriter和FileWriter这两个类有什么区别 printwriter设置编码

写文件最佳组合
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转化为Wrtier.这时就可以用BufferedWriter了。
API documents中都写的很清楚了。

==============================================

3.PrintStream类和PrintWriter类
  PrintStream类是过滤器类中一个不可忽视的成员,最基本的标准输出就要借助于它——我们常用的System.out变量就是PrintStream实例。与之对应的字符流类是PrintWriter类。
  PrintStream有两个构造函数(在新版API中已标记为过时):
  ■public PrintStream(OutputStream out)
  ■public PrintStream(OutputStream out,boolean autoFlush)
其中,autoFlush置为true时,每当输出遇到换行符,缓冲区的内容就被强制全部输出,如同调用了一次flush()。但要注意,如果没遇到换行符,还是会有数据“憋”在缓冲区里。
  方法(已熟悉的就不解释):
  ■public void write(int b)
  ■public void write(byte b,int offset,int length)
  ■public void flush( )
  ■public void close()
  ■public void print(Object obj)
  这个方法功能是非常强大的,它可以输出任何对象,而不必另加说明。此外print()方法有许多重载形式,即有多种参数。它们是字符串(String)、字符数组(char[])、字符(char)、整数(int)、长整数(long)、浮点数(float)、双精度浮点数(double)、布尔值(boolean)。其中,输出多个数单位的print()方法(也就是指参数为String和char[]的)是同步(synchronized)方法。
  ■public void println()输出一个换行符。
PrintWriter和FileWriter这两个类有什么区别 printwriter设置编码
  ■public synchronized void println(Object obj)
  println()方法有9个重载形式,几乎就是print()方法的翻版。唯一的区别在于println()方法都是同步的。
  ■public boolean checkError()
  检查输出过程中有什么错误,如有,返回true值。只要输出流中出现一次错误,则出错后的任意对checkError()的调用均会返回真值。
  下面介绍PrintWriter类。
  如同第二节中所说,PrintWriter是JDK1.1版增加了与字节流I/O相对应的字符流I/O。但是,为了保持兼容性,原先的类几乎没有改动。再加之调试的需要,PrintStream类被保留,并且System类中的成员变量out、err仍作为它的对象。然而,PrintWriter用于大多数输出比PrintStream更为合适。因此1.1版的API中建议新开发的代码使用PrintWriter类,并将PrintStream类的两个构造函数标记为过时。这样,虽然使用System.out输出不会产生问题,在程序中创建新的PrintStream对象时却会产生编译时的警告。
  PrintWriter类与PrintStream类的方法是对应的。有一个不同之外需提请读者注意,就是当前者的自动清空缓冲区的功能被使能时(构造函数中autoFlush置为true),仅当println()方法被调用时才自动清缓冲区,而不是像PrintStream一样遇到一个换行符就清缓冲。

  

爱华网本文地址 » http://www.aihuau.com/a/25101016/292892.html

更多阅读

73岁 与84岁 之说的来历 避讳73和84这两个岁数

73(岁)与84(岁)之说 的来历毛主席晚年谈论他的健康时说:“73(岁),84(岁),阎王不请,自己到。”他老人家恰恰是84虚岁逝世的。民间也有73岁,84岁是老人的两个门槛之说。以后,每逢清明扫墓到墓地,我总要下意识地看看逝者碑刻上的年龄,按照统计学来观察,

放疗、化疗和物疗有什么区别 化疗与放疗有什么区别

放疗、和化疗和物疗(理疗)有什么区别一、放射治疗就是利用射线杀死肿瘤细胞从而达到治愈肿瘤的目的。癌症三大治疗手段,化疗、放疗、手术(目前又有一种生物免疫疗法,可称为第四种方法)。但手术治疗癌症有很多条件和要求,所以一般是放疗.化

声明:《PrintWriter和FileWriter这两个类有什么区别 printwriter设置编码》为网友别让我看见你分享!如侵犯到您的合法权益请联系我们删除