Java IO:CharArrayReader
Java的CharArrayReader类(java.io.CharArrayReader)使我们可以将char数组的内容作为字符流读取。
JavaCharArrayReader
在char数组中有数据时很方便,但是需要将该数据传递给只能从Reader(或者Reader子类)读取的组件。只需将char数组包装在CharArrayReader中,然后将其传递给该组件。
CharArrayReader示例
这是一个简单的JavaCharArrayReader
示例:
char[] chars = "123".toCharArray(); CharArrayReader charArrayReader = new CharArrayReader(chars); int data = charArrayReader.read(); while(data != -1) { //do something with data data = charArrayReader.read(); } charArrayReader.close();
这个例子首先从一个Java字符串创建一个char
数组。其次,该示例创建了一个CharArrayReader实例,并将char数组作为参数传递给CharArrayReader构造函数。第三,该示例从CharArrayReader中一一读取字符,最后关闭CharArrayReader。
注意:为清楚起见,此处已跳过适当的异常处理。要了解有关正确的异常处理的更多信息,请转到Java IO异常处理。
从char数组的一部分创建CharArrayReader
可以仅从char数组的一部分创建Java CharArrayReader。这是显示如何创建只读取部分char数组的CharArrayReader的示例:
char[] chars = "0123456789".toCharArray(); int offset = 2; int length = 6; CharArrayReader charArrayReader = new CharArrayReader(chars, offset, length);
这个例子创建了一个" CharArrayReader",它只从" char"数组中向前索引为2和6个" char"元素的" char"中读取。
关闭CharArrayReader
可以使用如下的close()方法来关闭CharArrayReader:
charArrayReader.close();
或者,我们可以使用Java 7 try-with-resources构造关闭CharArrayReader
。看起来是这样的:
try(CharArrayReader charArrayReader = new CharArrayReader(chars, offset, length)){ int data = charArrayReader.read(); while(data != -1) { //do something with data data = charArrayReader.read(); } }
注意,在CharArrayReader上没有显式的close()调用。 try块可以解决这个问题。
但是,由于" CharArrayReader"没有使用任何底层系统资源,例如文件或者网络套接字,因此关闭" CharArrayReader"并不是至关重要的。