Java IO:CharArrayWriter

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

Java的CharArrayWriter类(java.io.CharArrayWriter)可以通过Writer方法写入字符(CharArrayWriter是Writer的子类)并将写入的字符转换为char数组。 。

当我们有一个只能向Writer中写入字符的组件,但我们需要将这些字符作为char数组时,可以使用Java CharArrayWriter类。只需向该组件传递一个" CharArrayWriter",并在将所有字符写入该组件后,在" CharArrayWriter"上调用" toCharArray()"即可。

CharArrayWriter示例

这是一个简单的JavaCharArrayWriter示例:

CharArrayWriter charArrayWriter = new CharArrayWriter();

charArrayWriter.write("CharArrayWriter");

char[] chars1 = charArrayWriter.toCharArray();

charArrayWriter.close();

这个例子首先创建一个JavaCharArrayWriter。其次,该示例将一个字符串写入CharArrayWriter。第三,通过在CharArrayWriter上调用toCharArray()方法,将获得的字符作为char数组获得。

注意:为清楚起见,此处已跳过适当的异常处理。要了解有关正确的异常处理的更多信息,请转到Java IO异常处理。

设置初始字符数组大小

Java的CharArrayWriter具有一个构造函数,可用于设置内部用于存储书写字符的char数组的初始大小。

设置初始大小不会阻止CharArrayWriter存储比初始大小更多的字符。如果写入CharArrayWriter的字符数超过了初始char数组的大小,则会创建一个新的char数组,并将所有字符复制到新数组中。

这是使用CharArrayWriter构造函数设置初始char数组大小的样子:

int initialSize = 1024;

CharArrayWriter charArrayWriter =
    new CharArrayWriter(initialSize);

这个示例创建一个CharArrayWriter,其初始char数组大小为1024.

关闭CharArrayWriter

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

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

charArrayWriter.close();

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

try(CharArrayWriter charArrayWriter =
    new CharArrayWriter() ){

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

    char[] chars = charArrayWriter.toCharArray();
}

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