Java IO:StringWriter

时间:2020-01-09 10:36:07  来源:igfitidea点击:

JavaStringWriter类(java.io.StringWriter)使我们能够获取以String形式写入Writer的字符。如果我们有一个只能将数据写入"写入器"的组件,但我们需要将该数据作为字符串,则" StringWriter"很有用。

StringWriter示例

这是一个简单的JavaStringWriter示例:

StringWriter stringWriter = new StringWriter();

//write characters to writer.
stringWriter.write("This is a text");

String       data       = stringWriter.toString();
StringBuffer dataBuffer = stringWriter.getBuffer();

stringWriter.close();

这个例子首先创建一个StringWriter。其次,该示例将字符串写入StringWriter

第三,通过两个方法toString()和getBuffer()获得写入StringWriter的字符。我们只需要使用这两种方法之一,但是都显示了这两种方法,因此我们知道它们都存在。

方法toString()返回以String形式写入StringWriter的字符。

方法getBuffer()返回由StringWriter使用的StringBuffer,以根据写入的字符来构建字符串。

关闭一个StringWriter

完成将字符写入JavaStringWriter后,可以关闭。由于StringWriter没有连接到任何底层系统资源,例如文件或者网络连接,因此关闭它并不重要。

关闭StringWriter的方法是调用其close()方法。这是关闭JavaStringWriter的样子:

stringWriter.close();

我们还可以使用Java 7中引入的try-with-resources构造。这是如何使用try-with-resources构造使用和关闭StringWriter外观的方法:

try(StringWriter stringWriter =
    new StringWriter() ){

    stringWriter.write("data 1");
    stringWriter.write("data 2");
    stringWriter.write("data 3");

    String writtenText = stringWriter.toString();
}

注意,不再有任何对StringWriter实例的显式close()方法调用。 try-with-resources构造可以解决这一问题。