`
cii001
  • 浏览: 23478 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

PrintWriter和FileWriter这两个类有什么区别(转)

    博客分类:
  • java
阅读更多

源地址:http://blog.sina.com.cn/s/blog_9989f1120101310n.html

 

写文件最佳组合   
  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()输出一个换行符。   
    ■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一样遇到一个换行符就清缓冲。

分享到:
评论

相关推荐

    java 输出流中的PrintStream 和 PrintWriter有什么区别

    java 输出流中的PrintStream 和 PrintWriter有什么区别

    Java Scanner、File、PrintWriter使用实例

    Java Scanner File PrintWriter使用实例

    java写入txt PrintWriter FileOutputStream

    java写入txt:两种方法,1:利用PrintWriter 类2.FileOutputStream输出流

    Fibonacci_int

    Fibonacci int PrintWriter BufferedWriter FileWriter Integer.parseInt BufferedReader InputStreamReader System.in readLine

    Fibonacci_double

    Fibonacci double PrintWriter BufferedWriter FileWriter Integer.parseInt BufferedReader InputStreamReader System.in readLine

    Fibonacci_long

    Fibonacci long PrintWriter BufferedWriter FileWriter Integer.parseInt BufferedReader InputStreamReader System.in readLine

    Fibonacci_big

    Fibonacci BigInteger PrintWriter BufferedWriter FileWriter Integer.parseInt BufferedReader InputStreamReader System.in readLine

    PrintStream和PrintWriter的区别简介

    主要介绍了PrintStream和PrintWriter的区别简介,具有一定借鉴价值,需要的朋友可以参考下

    PrintWriter的用法---马克-to-win java视频

    PrintWriter的用法---马克-to-win java视频 打印输出流

    浅谈PrintStream和PrintWriter的区别和联系

    主要介绍了浅谈PrintStream和PrintWriter的区别和联系,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    File-Output-w-PrintWriter:一个演示 PrintWriter 类的简单程序。 提示用户输入他们有多少朋友

    一个演示 PrintWriter 类的简单程序。 系统会提示用户输入文件名以及他们有多少朋友。 将使用 PrintWriter 类创建一个文件。 然后,FOR 循环将根据用户的好友数量重复次数。 每次循环时,都会提示用户输入朋友的...

    IO流各个类的使用方法

    介绍了,下面这些类的具体使用方法,非常详细,值得一看 File FileFilter RandomAccessFile 【字节流】 InputStream OutputStream FileInputStream FileOutputStream DataInputStream DataOutputStream ...

    Java之IO流学习总结

    这两个流对象是字符体系中的成员,它们有转换作用,本身又是字符流,所以在构造的时候需要传入字节流对象进来。 8.File类 File类是对文件系统中文件以及文件夹进行封装的对象,可以通过对象的思想来操作文件和...

    使用Java注解处理器实现一个简单的日志记录系统.txt

    这个代码实现了一个简单的日志记录系统。...在该方法中,创建了一个FileWriter对象用于写入日志文件,并使用PrintWriter对象进行格式化输出。如果在处理过程中发生异常,会使用LOGGER的log方法输出错误信息。

    AIC的Java课程1-6章

    (System.out对象封装了这两个方法)。 第10章 基本数据结构 4课时  了解和比较静态分配内存空间和动态分配内存空间,能够选择数组或链表表示线性结构。  掌握通过引用同类型对象(指针)实现...

    java io 类 小结 代码

    FileReader FileWriter InputStreamReader OutputStreamWriter BufferedReader BufferedWriter PrintWriter DataOutputStream DataInputStream ObjectOutputStream ObjectInputStream Scanner

    JDK_API_1_6

    Console 此类包含多个方法,可访问与当前 Java 虚拟机关联的基于字符的控制台设备(如果有)。 DataInputStream 数据输入流允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类型。 DataOutputStream...

    【公益知识库zscc.club】51-IO流(PrintWriter).avi

    【公益知识库zscc.club】51-IO流(PrintWriter).avi

    java自学之道

    2.2.9 PrintWriter类 2.2.10 System.in对象和System.out对象 文件处理 3.1 创建或打开、关闭文件对象 3.2 关闭文件 3.3 read()方法 3.4 write()方法 3.5 其他操作文件的方法 4、Java异常处理 4.1 Java异常概念 4.2...

    java编程基础,应用与实例

    第1章 什么是Java程序设计语言 1 1.1 Java语言诞生背景 1 1.2 Java语言的特点 1 1.2.1 可移植性(universality) 1 1.2.2 安全性(security) 1 1.2.3 Java Virtual Machine(JVM) 2 1.2.4 面向对象的程序...

Global site tag (gtag.js) - Google Analytics