该类实现了一个可用作字符输入流的字符缓冲区,即该类可利用字符缓冲区当做字符输入流进行读取工作。
CharArrayReader(char[] buf)
根据指定的字符数组创建一个字符数组流。
CharArrayReader(char[] buf, int offset, int length)
根据指定的部分字符数组,数组从offset开始,长度为length,创建一个字符数组流。
void close()
关闭流。
int read()
从流中读入一个字符。
int read(char[] b, int off, int len)
读取最多len个字符到目标数组中,返回实际读取的字符数,当读取到缓冲区末尾时,返回-1。
long skip(long n)
读入字符时跳过n个字符。
import java.io.CharArrayReader;
import java.io.IOException;
import java.io.PrintStream;
public class Test {
public static void main(String[] args) throws IOException {
char[] c = {'t', 'h', 'i', 's'};
// 创建一个新的CharArrayReader
CharArrayReader charArrayReader = new CharArrayReader(c);
// 跳过前两个字符
charArrayReader.skip(2);
// 读取第三个字符
char a = (char)charArrayReader.read();
// 创建输出流并输出
PrintStream printStream = new PrintStream(System.out);
printStream.println(a);
charArrayReader.close();
}
}
输出:
i
该类实现了一个可用作字符输出流的字符缓冲区,当数据写入流时,缓冲区自动增长,请注意在此类上调用close()无效,并且可以在流关闭后调用此类的方法而不生成IOException。
CharArrayWriter()
根据默认缓冲区大小创建CharArrayWriter流对象。
CharArrayWriter(int initialSize)
根据指定缓冲区大小创建CharArrayWriter流对象。
void close()
关闭CharArrayWriter流。
void flush()
清空CharArrayWriter流。
CharArrayWriter append(char c)
在CharArrayWriter流追加一个字符。
CharArrayWriter append(CharSequence csq)
在CharArrayWriter流追加一个字符序列。
CharArrayWriter append(CharSequence csq, int start, int end)
在CharArrayWriter流追加一个字符序列,从位置start到位置end。
void write(char[] c, int off, int len)
向流中写入一个数组,从位置off开始,长度为len。
void write(int c)
向流中写入一个字符。
void write(String str, int off, int len)
向流中写入一个字符串。
void writeTo(Writer out)
将缓冲区的内容写入到另一个字符输出流中。
char[] toCharArray()
将缓冲区的数据转成字符数组。
String toString()
将缓冲区的数据转成字符串。
import java.io.CharArrayWriter;
import java.io.IOException;
import java.io.PrintStream;
public class Test {
public static void main(String[] args) throws IOException {
char[] c = {'t', 'h', 'i', 's'};
// 创建一个CharArrayWriter流
CharArrayWriter charArrayWriter = new CharArrayWriter();
// 将字符串写入CharArrayWriter流
charArrayWriter.write(c);
// 将CharArrayWriter流中的数据转换成字符串
String s = charArrayWriter.toString();
// 创建一个PrintStream
PrintStream printStream = new PrintStream(System.out);
// 将字符串打印到控制台
printStream.println(s);
charArrayWriter.close();
}
}