`

java中的Writer类

    博客分类:
  • java
阅读更多

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

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

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

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

 

 

(2)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中Writer类.pdf

    Java 中 Writer 类 Writer 类是 Java 中的一个抽象类,用于以字符方式向输出流中写入数据。它是一个输出流,同时也是一个字符流。 Writer 类是字符流的抽象超类,也就是说所有的输出字符流都派生自 Writer 类。 ...

    JAVA_API1.6文档(中文)

    java.util.concurrent 在并发编程中很常用的实用工具类。 java.util.concurrent.atomic 类的小工具包,支持在单个变量上解除锁的线程安全编程。 java.util.concurrent.locks 为锁和等待条件提供一个框架的接口和类...

    xml writer

    在XML Writer中,你可以: 1. **直观的用户界面**:软件提供了简洁的用户界面,使用户可以快速上手,无需深入了解XML语法就能创建文档。它可以支持拖放操作,直接在界面上添加元素和属性。 2. **模板和预设**:XML...

    java常用的工具类整理28个

    在Java编程语言中,工具类(Utility Class)是包含各种静态方法的类,这些方法用于执行特定任务,如数据操作、文件处理、数学计算等。它们通常不包含实例变量,只提供静态方法服务,帮助开发者提高代码的复用性和...

    Java IO处理类的汇总

    Java IO处理类是Java平台中用于输入输出操作的核心部分,它允许程序与各种类型的输入源(如文件、网络连接)以及输出目标(如显示器、打印机)进行交互。本篇文章将全面解析Java IO处理类,包括基本概念、常用类库、...

    Java IO 工具类大全

    本篇文章将全面解析Java IO工具类,帮助你理解并掌握其在实际开发中的应用。 一、Java IO基础 Java IO体系主要由流(Stream)组成,分为字节流和字符流两大类,分别处理字节数据和字符数据。字节流包括InputStream...

    java IO 类层次图

    本文将通过分析一张清晰明了的Java IO类层次图,详细介绍Java IO体系中的主要类及其关系。 #### 二、Java IO 类层次结构详解 ##### 2.1 字节流类层次结构 Java IO中的字节流类主要分为两大类:`InputStream`和`...

    JAXB工具类 xml转为java对象 java对象转为xml

    Java Architecture for XML Binding (JAXB) 是Java平台中用于处理XML和Java对象之间转换的一个标准API。它使得在Java应用程序中使用XML数据变得更加方便,无需手动编写大量的转换代码。本教程将详细介绍JAXB如何实现...

    Java核心源代码

    1. **java.lang**: 这是最基础的包,自动导入到每个Java程序中,包含了如Object、String、System等基础类。Object是所有类的父类,提供了一些通用的方法如equals()和toString()。String类处理字符序列,而System类...

    java 1.6 中文 帮助文档

    1. **Java基础**:Java 1.6 中的编程基础包括变量、数据类型、控制结构(如if语句和循环)、方法定义以及类和对象的概念。此外,还包括异常处理、包管理、以及对多线程的支持。 2. **面向对象编程**:Java是纯面向...

    java jdk api中文开发文档(免币)

    5. **输入/输出流**:Java I/O系统支持文件操作、网络通信等,如InputStream、OutputStream、Reader、Writer等类族。 6. **多线程**:Java提供了Thread类和Runnable接口来实现并发执行,文档详细描述了线程的创建、...

    ioliu.rar_IO流 java_Java Reader Writer_java IO_stream

    * 注意:只要子类 包含以下类名字的,就是该流的继承 * InputStream----- 输入字节流 * Reader-------- 输入字符流 * OutputStream-----输出字节流 * Writer --------输出字符流

    dxf文件java写入程序源代码

    在Java中,可以使用`BufferedWriter`或`PrintWriter`类来写入ASCII文本。同时,为了方便操作,可以创建一个DXFWriter类,封装图层管理、实体创建和文件写入等功能。例如,创建直线的函数可以接收起点和终点坐标,...

    java 中文Unicode转换

    在Java编程语言中,Unicode编码是一种广泛使用的字符集,它包含了世界上几乎所有的文字,包括中文。Unicode使得在程序中处理不同语言的文本变得更加方便。本文将深入探讨如何在Java中进行中文字符到Unicode编码的...

    java File文件处理工具类

    Java中的`File`类是Java I/O流体系中不可或缺的一部分,它是用来操作文件和目录的基础类。`File`对象代表了文件和目录路径名的抽象表示。在这个详细的讲解中,我们将深入探讨`File`类的各种功能,包括创建、读取、...

    java课件(常用类)

    "java课件(常用类)"这个主题涵盖了Java基础知识中的重要部分——常用类。这些类是Java标准库的一部分,为开发者提供了丰富的功能,可以极大地提高开发效率。 在Java中,"常用类"通常指的是那些位于Java标准库...

    JAVA 发送http请求工具类

    在Java中,我们需要配置`SSLSocketFactory`和`HostnameVerifier`来信任自签名证书或者特定的服务器证书。这部分代码较为复杂,可能包括以下步骤: 1. 创建信任所有证书的`TrustManager`。 2. 使用`TrustManager`...

    java中的io流详解

    低层次界面主要是由包 java.io 中的一系列类和接口来实现的,而高层次界面则是由包 java.lang 中的一些类来实现的。IO 类提供了低层次和高层次的界面,分别提供了面向数据序列(字符、字节)的界面和面向介质的界面...

    JAVA常用API文档 中文完整版.zip

    4. **I/O流**:Java的InputStream、OutputStream、Reader、Writer及其子类提供了处理输入输出的能力,支持字节流和字符流。Buffered流、File流和对象流扩展了基本流的功能,如缓冲读写、文件操作和对象序列化。 5. ...

Global site tag (gtag.js) - Google Analytics