Java 日看一类(56)之IO包中的StringWriter类

Java之Writer类:探索Java中的输出流 在Java中,当我们需要将字符或字符串写入到文件或其他输出流时,就可以使用Writer类来实现。Writer类是Java.io包中的一个抽象类,提供了一系列方法,可以用来写入字符或字符串到输出流中。本文将介绍Writer类的相关知识,包括源代码解析、应用场景案例、优缺点分析、类代码方法介绍和测试用例。本文将介绍Java中的Writer类,包括源代码解析、应用场景案例、优缺点分析、类代码方法介绍和测试用例。Writer类是Java.io包中的一个抽象类,用来将字符或字符串写入到输出流中。 阅读详情

该类无引入包

继承自Writer类




该类的类头注释如下:

/**
 * A character stream that collects its output in a string buffer, which can
 * then be used to construct a string.
 * <p>
 * Closing a <tt>StringWriter</tt> has no effect. The methods in this class
 * can be called after the stream has been closed without generating an
 * <tt>IOException</tt>.
 *
 * @author      Mark Reinhold
 * @since       JDK1.1
 */

大意如下:

该字符输出流可以收集输出的可组装成完整字符串的字符串缓冲

关闭函数对StringWriter无效,该方法在该流已关闭后调用不会产生IO异常



该类含有如下的成员变量:

将要输出的字符串的缓冲区

private StringBuffer buf;



该类含有如下的成员方法:

构造函数(默认构造函数

public StringWriter() {
    buf = new StringBuffer();
    lock = buf;
}

构造函数(指定缓冲区大小

public StringWriter(int initialSize) {
    if (initialSize < 0) {
        throw new IllegalArgumentException("Negative buffer size");
    }
    buf = new StringBuffer(initialSize);
    lock = buf;
}

写出一个字符

public void write(int c) {
    buf.append((char) c);
}

写出一个字符数组

public void write(char cbuf[], int off, int len) {
    if ((off < 0) || (off > cbuf.length) || (len < 0) ||
        ((off + len) > cbuf.length) || ((off + len) < 0)) {
        throw new IndexOutOfBoundsException();
    } else if (len == 0) {
        return;
    }
    buf.append(cbuf, off, len);
}

写出一个字符串

public void write(String str) {
    buf.append(str);
}

写出一个字符串中的部分

public void write(String str, int off, int len)  {
    buf.append(str.substring(off, off + len));
}

向该缓冲区添加字符序列(实际调用字符串写入函数

public StringWriter append(CharSequence csq) {
    if (csq == null)
        write("null");
    else
        write(csq.toString());
    return this;
}

向缓冲添加字符序列的部分

public StringWriter append(CharSequence csq, int start, int end) {
    CharSequence cs = (csq == null ? "null" : csq);
    write(cs.subSequence(start, end).toString());
    return this;
}

向字符缓冲区添加单个字符

public StringWriter append(char c) {
    write(c);
    return this;
}

向缓冲区添加字符串

public String toString() {
    return buf.toString();
}

获得缓冲区(指针)

public StringBuffer getBuffer() {
    return buf;
}

刷新流(没啥用

public void flush() {
}

关闭流(没啥用

public void close() throws IOException {
}



该类的实质实际上是将零碎的输出填充到一个StringBuffer中,然后当你的输入结束之后调用getBuffer函数获得该缓冲区来进行需要的操作。该类相当于在StringBuffer上又做了一层封装,但是也没封装啥东西,如果单纯使用这种零碎拼凑方式的话不如直接使用StringBuffer。主要优势在于继承了Writer类,以后可以根据这个基类结合其他输出流来进行组合,这种做法实际上有点相当于调用接口了。

国内外主流嵌入式GUI汇总 随着MCU资源增多,处理能力也强了,同时市场需求也增多了GUI功能也越来越丰富了,很多的嵌入式图形库都可以做出绚丽的界面。 阅读详情

相关推荐

EXI编解码避坑指南:ISO15118-2协议中3条异常命令的差异分析

本文深度剖析了ISO15118-2协议测试中EXI编解码的典型问题,聚焦于ChargeParameterDiscoveryRes、CertificateInstallationReq和MeteringReceiptReq三条命令在不同工具间产生109字节差异的现象。通过对比EXICodec.jar、OpenEXI和Efficient XML的输出,揭示了差异根源于EXI报头处理机制与模式文件完整性,并提供了从现象确认、根因分析到解决方案的标准化排查流程,助力协议测试工程师确保编解码一致性与通信可靠性。

algae的博客 411

StringWriter类的使用

概述 在字符串缓冲区中收集输出的字符流,可用于构造字符串,关闭流无效,关闭后调用其他方法不会报异常。 构造方法 构造方法 说明 public StringWriter() 使用默认的初始字符串缓冲区大小创建一个新的字符串Writer,默认大小为16个字符。 public StringWriter(int initialSize) 使用指定的大小创建一个新的字符串Writer。 常用方法 实例方法 说明 void write(int c) 向流中.

二木成林 6285

Agent 团队管理手册:如何设定目标、分配角色与解决冲突

本文从Agent团队的底层逻辑出发,完整讲解了Agent团队管理的三大核心模块:目标设定(分层拆解+对齐校验)、角色分配(能力匹配+最优算法)、冲突处理(分类处理+仲裁投票),并提供了可直接运行的完整代码示例。通过本文的方法,你可以快速搭建一个高效协作的Agent团队,大幅提升复杂任务的完成效率和准确率。Agent团队是未来AI应用的核心形态,现在正是落地的黄金期,建议你从一个小场景开始动手实践,逐步优化自己的Agent团队管理方法论。

AI天才研究院 236

JAVA将字符串导致,关于java:不会关闭一个字符串写入器导致泄漏?

我意识到,在Java中,GC将最终清除对象,但我会问,如果不关闭字符串写入器,这是一个错误的做法,目前我正在这样做:private static String processTemplate(final Template template, final Map root) {StringWriter writer = new StringWriter();try {template.process...

weixin_32734545的博客 444

6种常用数据分析方法详解:从描述统计到时间序列

数据分析是连接数据与业务决策的桥梁。面对海量数据,掌握描述性统计与对比分析可快速了解现状与差距;相关分析与回归分析能揭示变量间的关联与影响大小;聚类分析用于用户分群,时间序列分析则预测未来走势。这些方法广泛应用于用户画像、销量预测、活动效果评估等场景,是数据分析师和运营人员必备的技能。系统掌握这6种核心方法的使用场景、原理逻辑与实操步骤,能够帮助读者建立完整分析框架,真正用数据驱动业务增长。

weixin_34405354的博客 335

Word | 简单可操作的快捷公式编号、右对齐和引用方法

在理工科论文的写作中,涉及到大量的公式输入,我们希望能够按照章节为公式进行编号,并且实现公式居中,编号右对齐的效果。网上有各种各样的方法来实现,操作繁琐和简单的混在一起,让没有接触过公式编号的人感觉比较混乱。笔者自己博览相关博客,亲身实践,总结出一套自认为比较简便的公式编号、对齐和引用方法,在这里分享给大家~

qq_43466146的博客 3万+

java.io包中StringWriter类和PrintWriter类作用

在Java中,StringWriter和PrintWriter是两个用于不同输出需求的类。StringWriter将输出捕获到内存中的一个字符串,而PrintWriter则可以将输出发送到文件、控制台或其他输出流。

chen2017sheng的博客 753

大模型量化方法总结

本文主要对大模型量化方法进行了总结,希望对学习大语言模型的同学们有所帮助。 文章目录 1. 前言 2. 模型精度 3. 量化方法 3.1 方法一 3.2 方法二 3.3 方法三

herosunly的博客 1万+

java stringwriter类_Java StringWriter 类

Java StringWriter 类在本教程中,我们将借助示例学习Java StringWriter及其子类。java.io包的StringWriter类可用于将数据(以字符为单位)写入字符串缓冲区。它继承了抽象类Writer。注意:在Java中,字符串缓冲区被认为是可变的字符串。也就是说,我们可以修改字符串缓冲区。要将字符串缓冲区转换为字符串,可以使用toString()方法。创建一个Stri...

weixin_34220317的博客 665

车载以太网测试-3【Wireshark介绍】

数据包捕获支持从多种网络接口(如以太网、Wi-Fi、蓝牙等)捕获数据包。可以实时捕获或从文件中读取已捕获的数据包。协议解析支持解析数百种网络协议(如 TCP/IP、HTTP、DNS、FTP 等)。能够深入解析协议头部和负载,帮助用户理解网络通信的细节。过滤功能提供强大的显示过滤器和捕获过滤器,帮助用户快速定位和分析感兴趣的数据包。支持基于协议、IP地址、端口号等多种条件的过滤。统计和分析提供多种统计工具,如流量图、会话统计、协议分层统计等。

车载网络测试工程师的博客 1992

HyperLynx中层叠设计实例

这两种方式有点区别,前一种方式只是增加层,需要自行修改层的类型,后一种方式可以选定为某一种类型,如果是增加信号层,软件会默认同时增加一层介质层。层叠已经有8层,按照示例的层叠有4个信号层、3个地平面层和1个电源平面层,对照进行层名称(LayerName)、介质类型(Type)及用途(Usage)设置。在这列中,有的是白色,有的是淡蓝色。白色的说明可以修改,如第一行是介质,通常在最外层的介质有两个用途,阻焊层和介质,单击该行会出现一个下拉菜单,选择SolderMask,即为阻焊层。...

小幽余生不加糖 5879

io流读取word文件 乱码_高效IO之Java IO体系(一)

更多Android高级架构进阶视频免费学习请点击:哔哩哔哩 ( ゜- ゜)つロ 乾杯~ Bilibili​space.bilibili.com个人觉得可以用“字节流操作类和字符流操作类组成了Java IO体系”来高度概括Java IO体系。借用几张网络图片来说明(图片来自 http://blog.youkuaiyun.com/zhangerqing/article/details/8466532 )** 基于...

weixin_39824801的博客 1444

Pydoll浏览器自动化框架教程

让浏览器自动化回归本质。不再纠缠驱动兼容、不再手动处理验证码、不再因为请求和 UI 分裂而头疼。如果你经常做 Web 自动化、爬虫或者测试,不妨试试 Pydoll。也别忘了给项目点个 ⭐,让作者知道有人喜欢这个工具。👉GitHub 地址。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 204

java的io_JAVA基础知识之IO——Java IO体系及常用类

Java IO体系个人觉得可以用“字节流操作类和字符流操作类组成了Java IO体系”来高度概括Java IO体系。借用几张网络图片来说明(图片来自http://blog.youkuaiyun.com/zhangerqing/article/details/8466532 )基于字节的IO操作基于字符的IO操作从上图可以看到,整个Java IO体系都是基于字符流(InputStream/OutputStre...

weixin_42315866的博客 150

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

高效IO之Java IO体系(一)

更多Android高级架构进阶视频学习请点击:https://space.bilibili.com/474380680 个人觉得可以用“字节流操作类和字符流操作类组成了Java IO体系”来高度概括Java IO体系。 借用几张网络图片来说明(图片来自 http://blog.youkuaiyun.com/zhangerqing/article/details/8466532 ) ** 基于字...

AndroidAlvin的博客 297

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

java.io包下常用类及常用方法介绍

JAVA基础知识之IO——Java IO体系及常用类 Java IO体系 个人觉得可以用“字节流操作类和字符流操作类组成了Java IO体系”来高度概括Java IO体系。 借用几张网络图片来说明(图片来自 http://blog.youkuaiyun.com/zhangerqing/article/details/8466532 )  基于字节的IO操作        基于字符的IO操作 ...

yimenglin的博客 841

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

JAVA基础知识之IO——Java IO体系及常用类

Java IO体系个人觉得可以用“字节流操作类和字符流操作类组成了Java IO体系”来高度概括Java IO体系。借用几张网络图片来说明(图片来自 http://blog.youkuaiyun.com/zhangerqing/article/details/8466532 ) 基于字节的IO操作    基于字符的IO操作     从上图可以看到,整个Java IO体系都是基于字符流(InputStream/...

提莫队长的博客 209

java excel工程_java项目中Excel文件预览

1 packagecom.linkonworks.df.busi.utils;23 importjava.io.File;4 importjava.io.FileInputStream;5 importjava.io.IOException;6 importjava.io.InputStream;7 importjava.io.StringWriter;89 importjavax.xml.par...

weixin_35971653的博客 115

java项目中Excel文件预览

1 package com.linkonworks.df.busi.utils; 2 3 import java.io.File; 4 import java.io.FileInputStream; 5 import java.io.IOException; 6 import java.io.InputStream; 7 import java.io....

weixin_30593261的博客 399

JAVA FreeMarker工具类

FreeMarkerUtil.java 1 package pers.kangxu.datautils.utils; 2 3 import java.io.File; 4 import java.io.StringWriter; 5 import java.util.Map; 6 7 import pers.kangxu.datautils.common.C...

weixin_30325793的博客 378

文件复制Util写法,可以适用于多种条件

代码写法: 1 import java.io.BufferedInputStream; 2 import java.io.BufferedOutputStream; 3 import java.io.ByteArrayInputStream; 4 import java.io.ByteArrayOutputStream; 5 import java.io...

265

Maven 整合FreeMarker使用

pom.xml 1 <!-- freemarker jar --> 2 <dependency> 3 <groupId>org.freemarker</groupId> 4 <artifactId>freemarker</artifactId> 5 <version>2.3...

weixin_30329623的博客 1150

jsonUtil 工具类

1 package org.konghao.basic.util; 2 3 import java.io.IOException; 4 import java.io.StringWriter; 5 6 import com.fasterxml.jackson.core.JsonFactory; 7 import com.fasterxml.jackson.core...

weixin_33751566的博客 146

XML工具类

1 import java.io.File; 2 import java.io.FileWriter; 3 import java.io.StringWriter; 4 5 import org.dom4j.Document; 6 import org.dom4j.DocumentException; 7...

weixin_30482181的博客 100
上一篇: Java 日看一类(55)之IO包中的StringReader类
下一篇: Java 日看一类(57)之IO包中的Writer类
wyf95278
博客等级 码龄10年 38粉丝 71原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值