`

使用StringWriter和StringReader的好处

    博客分类:
  • java
阅读更多
当你有一组应用程序接口(API)只允许用Writer或Reader作为输入,但你又想使用String,这时可以用StringWriter或StringReader。

假设有下面这样一个process方法,给这个方法传递一个Person对象并把处理结果写入到一个Writer对象:
public void process_
(Person person, Writer writer);
这是设计API的一种很好的方式,因为API不必关心对象构造的问题,并且它很简单且一般化。

Writer类输出数据到一个文件;不过有时候数据必须保留在内存中,比如想在数据被输出以前在图形用户界面(GUI)上先显示一下,这时可以用StringWriter。StringWriter不是把数据写到某种形式的输出设备上,相反,它写到内存中。它有一个空的构造器和一个toString方法以得到StringBuffer。例如:
Writer writer = ...;
StringWriter out = new StringWriter(writer);
process(person, out);
StringBuffer result = out.getBuffer( );
当读入文件时也一样。可以用StringReader代替Reader来哄骗API,而不必非得从某种形式的文件中读入。StringReader的构造器要求一个String参数。例如:
Reader in = new StringReader("<conf><panic level="5"/></conf>");
alarm.loadConfig(in);
Writer和Reader类是设计来处理基于字符串的输入和输出的。InputStream和OutputStream类则应该用于处理基于字节的I/O。在这个层次的类中,可以用ByteArrayInputStream和ByteArrayOutputStream来达到StringReader和StringWriter的类似效果。

文章出处:飞诺网(www.diybl.com):http://www.diybl.com/course/3_program/java/javajs/20100705/333257.html
分享到:
评论

相关推荐

    ASP.NET(C#) String, StringBuilder 与 StringWriter性能比较

    ASP.NET(C#) String, StringBuilder 与 StringWriter性能比较

    Java之IO流学习总结

    功能和使用和OutputStream 极其类似,后面会有它们的对应图。 6.字符流的输入与输出的对应 7.字符流与字节流转换 转换流的特点: 其是字符流和字节流之间的桥梁 可对读取到的字节数据经过指定编码转换成字符...

    C#学习笔记_20100614

    创建和使用 HashTable SortedList: 存储键值对的集合 栈:先进后出队列 队列:先进先出列表 在 C#中遍历和排序对象集合 StringWriter实现的一个功能 创建一个文本文件并写入文本 序列化对象到文件 创建一个文本文件...

    writer.js:用于写入控制台、字符串的抽象库

    松散地基于 Java、.NET(例如 )和其他地方的类似概念。例子 var writer = require ( 'writer' ) ;var stringWriter = new writer . StringWriter ( ) ;stringWriter . write ( 'foo' ) ;stringWriter . write ( '...

    使用XmlSerializer序列化List对象成XML格式(list对象序列化)

    使用XmlSerializer序列化List对象成XML格式序列化成XML格式,和反序列化原格式 代码如下:List&lt;Customer&gt; lst = new List();Customer c = new Customer();c.ID = 1;c.Name = “one”;lst.Add(c); c = new Customer()...

    aspx不显示ViewState的实例

    代码如下:System.IO.StringWriter html = new System.IO.StringWriter(); System.Web.UI.HtmlTextWriter tw = new System.Web.UI.HtmlTextWriter(html); base.Render(tw); string Temp = html.ToString(); ...

    java-hwp:HWP文件文本提取

    Writer writer = new StringWriter(); // 추출된 텍스트를 출력할 버퍼 HwpTextExtractor.extract(hwp, writer); // 파일로부터 텍스트 추출 String text = writer.toString(); // 추출된 텍스트

    silencio:Silencio是一个Java库,用于转换和转换XML,JSON,YAML,属性和其他格式。 它适用于大多数操作,例如混淆,加密,最小化(最小化),匿名。 库是完全可定制和可扩展的

    Silencio Silencio是一个库,用于使用定义良好的转换和转换任何格式,例如 , 或文件。 它适用于大多数操作,例如:最小化(例如,最小化) 转换(例如) 它由处理文件转换(XML,JSON,Properties等) 决定的处理器...

    AceSegment:可调整,可配置和可扩展的框架,用于在Arduino平台上渲染七段LED显示

    AceSegment 一个可调整,可配置和可扩展的框架,用于在Arduino平台上渲染七段式LED显示。 支持的布线配置包括通过74HC595移位寄存器直接引脚连接到微控制器,该移位寄存器可通过软件或... StringWriter 高级用法AVR上

    freemarker 中文乱码解决

    解决办法一 解决办法二 通过模板生成文件乱码解决方法

    C#实现客户端数据导入导出源代码及说明文档

    本文结合项目实际,总结出比较实用的Excel文件导入到数据库和数据库导出到Excel表格中,供大家学习参考。 一、 数据库表与Excel表结构 1、 Excel表结构 2、 数据库Fms_Employee表结构 注意:要导入的Excel表列...

    C#学习笔记高级部分(pdf)

    创建和使用HashTable .................... 10 SortedList: 存储键值对的集合 .......... 10 栈:先进后出队列 ........................ 12 队列:先进先出列表 ...................... 14 在C#中遍历和排序...

    asp.net中导出Execl的方法

    System.IO.StringWriter tw = new System.IO.StringWriter() ; System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter (tw); ctl.RenderControl(hw); HttpContext.Current.Response.Write(tw....

    C#实现实体类和XML相互转换

    将实体类转换成XML需要使用XmlSerializer类的Serialize方法,将实体类序列化 public static string XmlSerialize(T obj) { using (StringWriter sw = new StringWriter()) { Type t= obj.GetType(); ...

    比Json.Net更快的JSON 序列化库 Jil.zip

    Jil 是一个 .NET 的快速 JSON 序列化和反序列化的开发包,基于 Sigil 构建并进行一些疯狂的优化。示例代码:using(var output = new StringWriter()) {  JSON.Serialize(  new  {  MyInt = 1,  MyString...

    关于导出excel时保持样式的一个方法

    导出excel表格大多是用的dataset导出和gridview导出.但是这两种导出方法难以保持表头等单元格合并,表格颜色,表格字体等样式. 利用将网页导出到excel中的方式,可以解决以上问题. &lt;br&gt;/// &lt;summary&gt;&lt;br&gt; /// ...

    ContractController.java

    Writer strout = new StringWriter(); res.setCharacterEncoding("utf-8"); res.setContentType( "application/pdf,charset=utf-8"); try (OutputStream out = res.getOutputStream()){ String ...

    dom4j生成xml

    StringWriter out = new StringWriter(); XMLWriter xmlWriter = new XMLWriter(out, format); try { xmlWriter.write(document); fileString = out.toString(); xmlWriter.close(); } catch ...

    Jil:基于Sigil构建的快速.NET JSON(De)Serializer

    第一次使用Jil来序列化给定的配置和类型对时,它将花费额外的时间来构建序列化器。 随后的调用将更快,因此,如果在代码中需要始终如一的快速运行时,则可能需要使用更早的“丢弃”序列化来“启动泵”。 动态序列化...

Global site tag (gtag.js) - Google Analytics