StringReader和StringWriter实现原理

StringReader和StringWriter使用的场景有限,将字符串当做流输出最常见的场景是:获取freemarker或者velocity模板的数据,并当做字符串返回给前端操作。

	public static void main(String[] args) {
	    String str = "男儿有泪不轻弹";
		try (StringReader sr = new StringReader(str); StringWriter sw = new StringWriter()) {
			int c = -1;
			while ((c = sr.read()) != -1) {
				sw.write(c);
			}
			sw.close(); // 空方法
			System.out.println(sw.getBuffer().toString());
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
总结

StringReader和StringWriter是Reader和Writer的装饰类,StringReader底层使用String类型的变量来存储读取的内容,StringWriter底层使用StringBuffer buf来接收数据。StringWriter写入的数据只是存在于缓存中,并不会写入实质的存储介质之中。

你可能感兴趣的:(Java技术进阶)