Java IO:CharArrayReader

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

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"并不是至关重要的。