Writer字符流

数据源与writer的结合

字符数组CharArrayWriter (java.io)
StringStringWriter (java.io)
文件

FileWriter (java.io)

管道

PipedWriter (java.io)

CharArrayWriter

实现一个可用作 Writer 的字符缓冲区

缓冲区会随向流中写入数据而自动增长  可使用 toCharArray() 和 toString() 获取数据。

在此类上调用 close() 无效

并且在关闭该流后可以调用此类中的各个方法,而不会产生任何 IOException

CharArrayWriter()
CharArrayWriter(int initialSize)
内部包含char buf[] size为大小
构造方法用来初始化缓冲区
StringWriter将输出收集到一个字符缓冲区 StringBuffer的字符流,可以用来构造字符串
关闭 StringWriter 无效
此类中的方法在关闭该流后仍可被调用,而不会产生任何 IOException
StringWriter()
StringWriter(int initialSize)
构造方法初始化缓冲区
FileWriter用来写入字符文件的便捷类
类似FileReader继承自InputStreamReader
他继承自OutputStreamWriter
FileWriter(String fileName)
FileWriter(String fileName, boolean append)
FileWriter(File file)
FileWriter(File file, boolean append)
FileWriter(FileDescriptor fd)
构造方法都是用来设置文件
PipedWriter管道字符流PipedWriter(PipedReader snk)
PipedWriter() 

转换流

OutputStreamWriter类似InputStreamReader 作为转换器使用
OutputStreamWriter 是字符流通向字节流的桥梁
可使用指定的 charset 将要写入流中的字符编码成字节
使用的字符集可以由名称指定或显式给定,否则将接受平台默认的字符集
每次调用 write() 方法都会导致在给定字符(或字符集)上调用编码转换器

为了获得最高效率,可考虑将 OutputStreamWriter 包装到 BufferedWriter 中

例如:

Writer out = new BufferedWriter(new OutputStreamWriter(System.out));

OutputStreamWriter(OutputStream out, String charsetName)
OutputStreamWriter(OutputStream out)
OutputStreamWriter(OutputStream out, Charset cs)
OutputStreamWriter(OutputStream out, CharsetEncoder enc)
获取OutputStream然后进行转换,或者指定具体的字符编码

FilterWriter类似其他的Filter类,作为装饰器模式的Decoder角色
以便具体的装饰器角色可以使用

BufferedWriter   以及  PrintWriter类似Reader  不同于字节流的装饰器模式应用

他们都自成一个模式的应用

他俩都单独是Writer 也都包含一个Writer

Writer下完整的家谱

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值