简单介绍
继承: Writer–>StringWriter,主要是对字符串进行处理
构造函数
StringWriter() 无参构造函数,使用默认初始字符串缓冲区大小创建一个新字符串writer
StringWriter(IFormatProvider) 有参构造函数,使用指定初始字符串缓冲区大小创建一个新字符串writer
常用方法介绍
写入:
● public void write(int c)
将数字文本写入文本字符串或者流。
● public void write(char cbuf[], int off, int len)
将字符批量的写入,自定义起始和长度
● public void write(String str)
将字符串写入当前的流
● public void write(String str, int off, int len)
将字符串批量的写入,自定义起始和长度
** 拼接:**
● public StringWriter append(CharSequence csq)
将指定的字符序列添加到此 writer。
● public StringWriter append(CharSequence csq, int start, int end)
将指定的字符序列的子序列(start开始,end结束)添加到writer。
● public StringWriter append(char c)
将指定字符添加到此 writer。
其他:
● public String toString()
返回包含迄今为止写入到当前 StringWriter 中的所有的字符串。
● public StringBuffer getBuffer()
返回该字符串缓冲区本身。
● public void flush()
刷新缓存:清理当前编写器的所有缓存区,使所有缓冲数据写入基础设备
● public void close()
关闭流
与类型相关的流操作的是内存,内存流的close();是无效的
代码测试
public static void writer() throws IOException {
StringWriter sw = new StringWriter();//运用了无参数的构造函数
/*方法介绍:*/
//write(int c)写入单个字符
sw.write('a');
//write(char[w] cbuf, int off, int len)写入字符数组的某一部分,偏移量和写入长度
char [] c = {'h','e','l','l','o'};
sw.write(c,1,3);
//write(String str)写入一个字符串
sw.write("sunny day");
//write(String str, int off, int len)写入字符串的某一部分,偏移量和写入长度
String s = "hello world";
sw.write(s,0,3);
//append(char c)将指定字符添加到此 writer
sw.append('g');
//append(CharSequence csq)将指定的字符序列添加到此 writer。
sw.append("apple");
//append(CharSequence csq, int start, int end)将指定字符序列的子序列添加到此 writer。
sw.append("tulun", 0, 3);
/*返回当前值:返回类型不同,一个是StringBuffer类型,一个是String类型*/
//getBuffer()返回该字符串缓冲区本身。
System.out.println(sw.getBuffer());
//toString()以字符串的形式返回该缓冲区的当前值。
System.out.printf(sw.toString());
//flush() 刷新该流的缓冲。
sw.flush();
//close() 关闭 StringWriter 无效。
sw.close();
}
public static void main(String[] args) throws IOException {
writer();
}