面向字符的输出流都是类 Writer 的子类,其类层次结构如图 10-5 所示。


图10-5 Writer的类层次结构图

表 10-3 列出了 Writer 的主要子类及说明。

表 10-3 Writer 的主要子类
类名 功能说明
CharArrayWriter 写到字符数组的输出流
BufferedWriter 缓冲输出字符流
PipedWriter 输出管道
OutputStreamWriter 转换字符到字节的输出流
FilterWriter 过滤输出流
StringWriter 输出到字符串的输出流
PrintWriter 包含 print()和 println()的输出流
FileWriter 输出到文件的输出流

Writer 所提供的方法如表 10-4 所示。

表 10-4 Writer 的常用方法
方法 功能描述
void close() 关闭输出流
void flush() 将缓冲区中的数据写到文件中
void writer(int c) 将单一字符 c 输出到流中
void writer(String str) 将字符串 str 输出到流中
void writer(char[] ch) 将字符数组 ch 输出到流
void writer(char[] ch, int offset, int length) 将一个数组内自 offset 起到 length 长的字符输出到流

使用 FileWriter 类写入文件

FileWriter 类是 Writer 子类 OutputStreamWriter 类的子类,因此 FileWriter 类既可以使用 Writer类的方法也可以使用 OutputStreamWriter 类的方法来创建对象。

在使用 FileWriter 类写入文件时,必须先调用 FileWriter()构造方法创建 FileWriter 类的对象,再调用 writer()方法。FileWriter 构造方法的格式为:
    public FileWriter(String name);  //根据文件名创建一个可写入的输出流对象
    public FileWriter(String name,Boolean a);  //a 为真,数据将追加在文件后面

【例 10-3】利用 FileWriter 类将 ASCⅡ字符写入到文件中(查看源代码)。

运行后程序后,打开 ep10_3.txt 文件,显示内容为:
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}

使用 BufferedWriter 类写入文件

BufferedWriter 类是用来将数据写入到缓冲区。使用时必须创建 FileWriter 类对象,再以该对象为参数创建 BufferedWriter 类的对象,最后需要用 flush()方法将缓冲区清空。BufferedWriter类有两个构造方法,其格式为:
    public BufferedWriter(Writer out);  //创建缓冲区字符输出流
    public BufferedWriter 面向字符的输出流都是类 Writer 的子类,其类层次结构如图 10-5 所示。


图10-5 Writer的类层次结构图

表 10-3 列出了 Writer 的主要子类及说明。

表 10-3 Writer 的主要子类
类名 功能说明
CharArrayWriter 写到字符数组的输出流
BufferedWriter 缓冲输出字符流
PipedWriter 输出管道
OutputStreamWriter 转换字符到字节的输出流
FilterWriter 过滤输出流
StringWriter 输出到字符串的输出流
PrintWriter 包含 print()和 println()的输出流
FileWriter 输出到文件的输出流

Writer 所提供的方法如表 10-4 所示。

表 10-4 Writer 的常用方法
方法 功能描述
void close() 关闭输出流
void flush() 将缓冲区中的数据写到文件中
void writer(int c) 将单一字符 c 输出到流中
void writer(String str) 将字符串 str 输出到流中
void writer(char[] ch) 将字符数组 ch 输出到流
void writer(char[] ch, int offset, int length) 将一个数组内自 offset 起到 length 长的字符输出到流

使用 FileWriter 类写入文件

FileWriter 类是 Writer 子类 OutputStreamWriter 类的子类,因此 FileWriter 类既可以使用 Writer类的方法也可以使用 OutputStreamWriter 类的方法来创建对象。

在使用 FileWriter 类写入文件时,必须先调用 FileWriter()构造方法创建 FileWriter 类的对象,再调用 writer()方法。FileWriter 构造方法的格式为:
    public FileWriter(String name);  //根据文件名创建一个可写入的输出流对象
    public FileWriter(String name,Boolean a);  //a 为真,数据将追加在文件后面

【例 10-3】利用 FileWriter 类将 ASCⅡ字符写入到文件中(查看源代码)。

运行后程序后,打开 ep10_3.txt 文件,显示内容为:
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}

使用 BufferedWriter 类写入文件

BufferedWriter 类是用来将数据写入到缓冲区。使用时必须创建 FileWriter 类对象,再以该对象为参数创建 BufferedWriter 类的对象,最后需要用 flush()方法将缓冲区清空。BufferedWriter类有两个构造方法,其格式为:
    public BufferedWriter(Writer out);  //创建缓冲区字符输出流
    public BufferedWriter www.xinbeiyuLe.cn (Writer out,int size);  //创建输出流并设置缓冲区大小

【例 10-4】利用 BufferedWriter 类进行文件复制(查看源代码)。

需要注意的是,调用 out 对象的 write()方法写入数据时,不会写入回车,因此需要使用newLine()方法在每行数据后加入回车,以保证目标文件与源文件相一致。(Writer out,int size);  //创建输出流并设置缓冲区大小

【例 10-4】利用 BufferedWriter 类进行文件复制(查看源代码)。

需要注意的是,调用 out 对象的 write()方法写入数据时,不会写入回车,因此需要使用newLine()方法在每行数据后加入回车,以保证目标文件与源文件相一致。

八. 输入输出(IO)操作3.面向字符的输出流的更多相关文章

  1. 八. 输入输出(IO)操作2.面向字符的输入流

    字符流是针对字符数据的特点进行过优化的,因而提供一些面向字符的有用特性,字符流的源或目标通常是文本文件. Reader和Writer是java.io包中所有字符流的父类.由于它们都是抽象类,所以应使用 ...

  2. 八. 输入输出(IO)操作4.面向字节的输入输出流

    字节流以字节为传输单位,用来读写8位的数据,除了能够处理纯文本文件之外,还能用来处理二进制文件的数据.InputStream类和OutputStream类是所有字节流的父类. InputStream类 ...

  3. 八. 输入输出(IO)操作5.面向字节流的应用

    文件输入输出流 文件输入输出流 FileInputStream 和 FileOutputStream 负责完成对本地磁盘文件的顺序输入输出操作. [例 10-5]通过程序创建一个文件,从键盘输入字符, ...

  4. 八. 输入输出(IO)操作1.输入输出基本概念

    输入输出(I/O)是指程序与外部设备或其他计算机进行交互的操作.几乎所有的程序都具有输入与输出操作,如从键盘上读取数据,从本地或网络上的文件读取数据或写入数据等.通过输入和输出操作可以从外界接收信息, ...

  5. 八. 输入输出(IO)操作7.文件的随机读写

    Java.io 包提供了 RandomAccessFile 类用于随机文件的创建和访问.使用这个类,可以跳转到文件的任意位置读写数据.程序可以在随机文件中插入数据,而不会破坏该文件的其他数据.此外,程 ...

  6. 八. 输入输出(IO)操作6.文件与目录管理

    目录是管理文件的特殊机制,同类文件保存在同一个目录下不仅可以简化文件管理,而且还可以提高工作效率.Java 语言在 java.io 包中定义了一个 File 类专门用来管理磁盘文件和目录. 每个 Fi ...

  7. 八. 输入输出(IO)操作8.文件的压缩处理

    Java.util.zip 包中提供了可对文件的压缩和解压缩进行处理的类,它们继承自字节流类OutputSteam 和 InputStream.其中 GZIPOutputStream 和 ZipOut ...

  8. Java的IO操作中有面向字节(Byte)和面向字符(Character)两种方式

    解析:Java的IO操作中有面向字节(Byte)和面向字符(Character)两种方式.面向字节的操作为以8位为单位对二进制的数据进行操作,对数据不进行转换,这些类都是InputStream和Out ...

  9. Java知多少(68)面向字符的输出流

    面向字符的输出流都是类 Writer 的子类,其类层次结构如图 10-5 所示. 图10-5 Writer的类层次结构图 表 10-3 列出了 Writer 的主要子类及说明. 表 10-3 Writ ...

随机推荐

  1. 【转载】Unity3D研究院之IOS&Andoird使用Sharesdk遇到的坑

    这两天研究了一下ShareSDK,说实话挺好用的,但是还是有点坑的地方.那么雨松MOMO写下博文记录一下来我遇到的坑,嘿嘿. 大部分内容它的文档上已经说的很清楚了. http://wiki.share ...

  2. Grid 布局管理器

    Grid 布局管理器: Grid布局类wx.GridSizer,Grid布局以网格形式对子窗口或控件进行摆放,容器被分成大小相等的矩形,一个矩形中放置一个子窗口或控件. wx.GridSizer构造方 ...

  3. 孤荷凌寒自学python第十一天初识Python的字典类

    孤荷凌寒自学python第十一天初识Python的字典类 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) Python的字典其实是一张二维对照表 下面举例说明: 键名Key 姓名 性别 身高 ...

  4. 计算机图形学 opengl版本 第三版------胡事民 第四章 图形学中的向量工具

    计算机图形学 opengl版本 第三版------胡事民 第四章  图形学中的向量工具 一   基础 1:向量分析和变换   两个工具  可以设计出各种几何对象 点和向量基于坐标系定义 拇指指向z轴正 ...

  5. 聊聊、Spring ServletContainerInitializer

    我们平时用 Java 注解很多,例如 @Configuration.@Component.@Service,我们习惯于通过 XML 方式来实现 Web,而用 Java 注解方式来实现 Web 却很少. ...

  6. web浏览器中的javascript -- 2

    在html里嵌入javascript: 在html文档里嵌入客户端javascript代码有4种方式: 1.内联,放置在<script>和</script>标签对之间; 2.放 ...

  7. DAO设计模式的理解

    为了降低耦合性,提出了DAO封装数据库操作的设计模式. 它可以实现业务逻辑与数据库访问相分离.相对来说,数据库是比较稳定的,其中DAO组件依赖于数据库系统,提供数据库访问的接口. 一般的DAO的封装由 ...

  8. # Including Artificial Intelligence in a Routing ProtocolUsing Software Defined Networks

    Abstract: 问题:AI在路由协议上的应用仅适用于真实设备,尤其是无线传感器节点 The inclusion of artificial intelligence (AI) can improv ...

  9. Linux下磁盘管理

    设置密码mkpasswdmkpasswd -s 0mkpasswd -s 0 -1 15 规定密码的长度 1. 查看磁盘或者目录的容量df 查看磁盘各分区使用情况 不加参数以k为单位 df -i in ...

  10. StringBuilder_学习笔记

    参考:https://www.jianshu.com/p/160c9be0b132 连接符号 "+" 本质 字符串变量(非final修饰)通过 "+" 进行拼接 ...