Java 日看一类(41)之IO包中的OutputStreamWriter类

基于3D相机的人体穴位识别与标注系统——完整Python实现方案 摘要 本文提出了一种基于3D相机的人体穴位识别与标注系统完整实现方案。系统采用Intel RealSense D435相机实时采集RGB-D数据,结合MediaPipe Pose模型进行人体33个关键骨骼点的三维姿态估计。通过建立穴位与骨骼关键点的映射关系,利用相机内参和深度信息将二维图像坐标转换为三维空间坐标。系统采用模块化设计,包含数据采集层、算法处理层、坐标转换层和可视化层,实现了穴位定位、三维坐标转换和点云可视化功能。关键技术包括:基于骨度折量法的穴位映射算法、深度图像到三维点云的转换方法,以及Op 阅读详情

该类继承自Writer

引入了如下包:

import java.nio.charset.Charset;
import java.nio.charset.CharsetEncoder;
import sun.nio.cs.StreamEncoder;


类头注释如下:

/**
 * An OutputStreamWriter is a bridge from character streams to byte streams:
 * Characters written to it are encoded into bytes using a specified {@link
 * java.nio.charset.Charset charset}.  The charset that it uses
 * may be specified by name or may be given explicitly, or the platform's
 * default charset may be accepted.
 *
 * <p> Each invocation of a write() method causes the encoding converter to be
 * invoked on the given character(s).  The resulting bytes are accumulated in a
 * buffer before being written to the underlying output stream.  The size of
 * this buffer may be specified, but by default it is large enough for most
 * purposes.  Note that the characters passed to the write() methods are not
 * buffered.
 *
 * <p> For top efficiency, consider wrapping an OutputStreamWriter within a
 * BufferedWriter so as to avoid frequent converter invocations.  For example:
 *
 * <pre>
 * Writer out
 *   = new BufferedWriter(new OutputStreamWriter(System.out));
 * </pre>
 *
 * <p> A <i>surrogate pair</i> is a character represented by a sequence of two
 * <tt>char</tt> values: A <i>high</i> surrogate in the range '&#92;uD800' to
 * '&#92;uDBFF' followed by a <i>low</i> surrogate in the range '&#92;uDC00' to
 * '&#92;uDFFF'.
 *
 * <p> A <i>malformed surrogate element</i> is a high surrogate that is not
 * followed by a low surrogate or a low surrogate that is not preceded by a
 * high surrogate.
 *
 * <p> This class always replaces malformed surrogate elements and unmappable
 * character sequences with the charset's default <i>substitution sequence</i>.
 * The {@linkplain java.nio.charset.CharsetEncoder} class should be used when more
 * control over the encoding process is required.
 *
 * @see BufferedWriter
 * @see OutputStream
 * @see java.nio.charset.Charset
 *
 * @author      Mark Reinhold
 * @since       JDK1.1
 */

大意如下:

该类是一个转换通道,从字符转换到byte

字符通过指定方式解码为字节

使用的字符集可以用名字指示,或者明确给出(chaset对象)或者使用平台默认的字符集


每次对写方法的调用引起解码转换器对输入的字符进行解码

转化所得的byte会先放在缓冲之中,然后再写入底层输出流

缓冲的大小可以被指定,不过默认的大小足以解决大部分情况

注意,被输入的字符并没有缓冲机制


为了效率最优,考虑将OutputStreamWriter封装在BufferedWriter来避免频繁的解码器调用


代理对 是一个字符,它由两个 char 值序列表示:高 代理项的范围为 '\uD800' 到 '\uDBFF',后跟范围为 '\uDC00' 到 '\uDFFF' 的低 代理项。

错误代理元素 指的是后面不跟低代理项的高代理项,或前面没有高代理项的低代理项。

此类总是使用字符集的默认替代序列 替代错误代理元素和不可映射的字符序列。如果需要更多地控制编码过程,则应该使用 CharsetEncoder 类。



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

编码流

private final StreamEncoder se;


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

构造函数(提供字符集名称

public OutputStreamWriter(OutputStream out, String charsetName)
    throws UnsupportedEncodingException
{
    super(out);
    if (charsetName == null)
        throw new NullPointerException("charsetName");
    se = StreamEncoder.forOutputStreamWriter(out, this, charsetName);
}

构造函数(使用默认字符集名称

public OutputStreamWriter(OutputStream out) {
    super(out);
    try {
        se = StreamEncoder.forOutputStreamWriter(out, this, (String)null);
    } catch (UnsupportedEncodingException e) {
        throw new Error(e);
    }
}

构造函数(使用指定字符集

public OutputStreamWriter(OutputStream out, Charset cs) {
    super(out);
    if (cs == null)
        throw new NullPointerException("charset");
    se = StreamEncoder.forOutputStreamWriter(out, this, cs);
}

构造函数(使用指定编码器

public OutputStreamWriter(OutputStream out, CharsetEncoder enc) {
    super(out);
    if (enc == null)
        throw new NullPointerException("charset encoder");
    se = StreamEncoder.forOutputStreamWriter(out, this, enc);
}

返回该流使用的字符编码名称

public String getEncoding() {
    return se.getEncoding();
}

清空缓冲区,将转码好的字节写出

void flushBuffer() throws IOException {
    se.flushBuffer();
}

向转码器写入一个字符

public void write(int c) throws IOException {
    se.write(c);
}

向转码器写入一个字符数组

public void write(char cbuf[], int off, int len) throws IOException {
    se.write(cbuf, off, len);
}

向转码器写入字符串

public void write(String str, int off, int len) throws IOException {
    se.write(str, off, len);
}

刷新流

public void flush() throws IOException {
    se.flush();

关闭流

public void close() throws IOException {
    se.close();
}



该类代码看下来主要是对字符编码流进行操作(字符编码流对传入的输出流进行操作,属于一个嵌套关系),同时继承Writer方便继承和调用,属于模块功能的交合点

高通开发系列 - Bootloader之lk匹配dtb和dtbo中msm-id和board-id的知识 lk匹配dtb和dtbo中的msm-id和board-id等知识 阅读详情

相关推荐

Java8动态生成SFunction:基于字段名的Lambda表达式实践

本文深入探讨了在Java8中如何基于字段名动态生成SFunction,以解决MyBatis Plus的LambdaQueryWrapper在动态查询场景下的局限性。通过核心原理LambdaMetafactory的解析和手把手的代码实现,展示了如何将字符串字段名转换为类型安全的Lambda表达式,从而实现真正动态、类型安全的查询条件构建与通用数据处理,显著提升代码的灵活性与安全性。

sss66的博客 954

Java IO体系之OutputStreamWriter

介绍 字符输出流Writer 的实现类 继承关系图 源码 package java.io; import java.nio.charset.Charset; import java.nio.charset.CharsetEncoder; import sun.nio.cs.StreamEncoder; public class OutputStreamWriter extends Wri...

thebigdipperbdx的博客 652

用SimaPro做碳足迹分析:手把手教你完成产品生命周期评估报告

本文详细介绍了如何使用SimaPro进行碳足迹分析,从软件安装到生命周期评估报告的完整流程。通过实战案例演示,帮助制造业企业、咨询机构和科研团队掌握产品生命周期评估(LCA)的核心技术,精准识别环境热点并优化决策,为可持续发展转型提供科学依据。

yhn45678901的博客 716

java-I/O File类(5)-Reader和Writer、OutputStreamWriter 、BufferedWriter、字节流和字符流的区别

回顾字节流输入输出 Reader和Writer Reader和Writer这两个抽象类主要用来读写字符流。 InputStreamReader是字节流通向字符流的桥梁 BufferedReader提供一个ReadLine()方法 OutputStreamWriter是字符流到字节流的桥梁 BufferedWriter也提供了一个很有用的方法,请看示例: public static void main(String[] args) throws Exception{ //对文件的写入和对

做有意思的事情 650

Llama模型结构拆解:为什么MLP模块要这样设计?从参数配置到计算流程全解析

本文深入解析了Llama模型MLP模块的设计精髓。通过拆解其三线性层结构、门控机制与SwiGLU激活函数,揭示了并行计算如何提升效率,并详细阐述了intermediate_size参数配置背后的经验权衡与计算考量,帮助读者透彻理解这一核心组件的设计逻辑与工程实现。

mac99的博客 529

别再只会插拔了!深入Linux内核,手把手调试USB热插拔中断(以高通平台为例)

本文深入探讨了Linux内核中USB热插拔中断的调试方法,特别针对高通平台提供了详细的实战指南。从硬件基础到内核机制,再到中断调试工具和常见问题排查,帮助开发者系统性地解决USB设备识别问题。通过监控中断状态、分析处理流程和高级调试技巧,提升USB热插拔的稳定性和性能。

weixin_29161785的博客 429

OutputStreamWriter、PrintWriter和BufferedWriter区别

PrintWriter无追加模式,若写入已有文件,将清空原文件,重新写入; 其println自动换行; OutputStreamWriter与BufferedWriter有追加模式,append设置为true时,在已有文件末尾追加;append=false时,从已有文件第一行开始覆盖写入,若写入内容比原有文件短,则只覆盖部分内容; BufferedWriter需手动换行,bw.newLine

idaretobe的专栏 2600

Fiori Elements 表格之 Tree Tables:从数据建模到交互行为的全链路剖析

SAP Fiori elements的Tree Table组件将分层数据以表格形式展示,支持展开/折叠操作,适用于组织结构、物料清单等多级数据场景。该组件在List Report和Object Page中均可使用,支持懒加载、多选、列冻结等标准表格功能,并与OData V4服务层级注解深度集成。后端需通过RAP或CAP建模提供层级数据,前端通过清单配置切换表类型。需注意在草稿模式下仅显示活动实体,且展开状态在编辑时不保留。性能方面建议采用懒加载策略,避免全量加载树节点。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 161

android 写入字节,Android – 将字节数组写入OutputStreamWriter

我有一个通过Web服务上传照片的应用程序.过去,我将文件加载到流中,然后转换为Base64.然后我通过OutputStreamWriter的write()方法发布了结果字符串.现在,Web服务已经改变,它期望multipart / form-data,它不期望Base64.所以不知怎的,我需要在没有转换的情况下发布此文件的chararters.我确定我很接近,但我得到的只是内容长度下溢或溢出.奇怪...

weixin_36469638的博客 410

【系统架构设计师-2026上半年真题】案例分析-参考答案及详解(回忆版)

架构评估与设计:通过入侵检测系统的案例分析,阐述质量属性(性能/可用性/安全性/可修改性)的匹配方法,推荐管道-过滤器风格处理实时数据流,并设计8个核心构件实现数据采集到告警的全流程处理。 高并发优化方案: 分析悲观锁(排他锁/共享锁)与乐观锁的特性差异,提出乐观锁通过版本号/CAS实现,悲观锁适用于强一致性场景。 给出Redis优化三手段:分布式锁控制临界资源、Lua脚本保证原子操作、热点数据多级缓存,结合消息队列削峰填谷。 分层架构实践: 智

数据知道的博客 1690

【SpringBoot 3.x 第92节】Spring Modulith:构建模块化单体架构(基于 Spring Boot 3),一文带你搞透(超详细)!

🏆本文收录于《滚雪球学SpringBoot 3.x》,专门攻坚指数提升,本年度国内最系统+最专业+最详细(永久更新)。    该专栏致力打造最硬核 SpringBoot3 从零基础到进阶系列学习内容,🚀均为全网独家首发,打造精品专栏,专栏持续更新中…欢迎大家订阅持续学习。 如果想快速定位学习,可以看这篇【SpringBoot3教程导航帖】,你想学习的都被收集在内,快速投入学习!!两不误。

**My Coding Family** 1002

转换流OutputStreamWriter 缓冲流

总结IO流结构 功能流:1.转换流 2.缓冲流 InputStreamReader: 读 in 输入节--符 看不懂转看的懂 OutputStreamWriter :写 out 输出符--节 看的懂转看不懂 转换流就是字符流 转换流只有writer和reader 转换流没有字节流 功能:缓冲流 Buffered(加速缓冲的速度) 字节和字符流都可以...

weixin_30478923的博客 355

利用pytorch长短期记忆网络LSTM实现股票预测分析

长短时记忆网络(Long Short Term Memory Network, LSTM),是一种改进之后的循环神经网络,可以解决RNN无法处理长距离的依赖的问题,目前比较流行。LSTM主要就是加入了三个门控:第一个开关遗忘门:负责控制继续保存长期状态c;第二个开关输入门:负责控制把即时状态输入到长期状态c;第三个开关输出门:负责控制是否把长期状态c作为当前的LSTM的输出。

优快云 精品推荐 1万+

java io系列21之 InputStreamReader和OutputStreamWriter

InputStreamReader和OutputStreamWriter 是字节流通向字符流的桥梁:它使用指定的 charset 读写字节并将其解码为字符。 InputStreamReader 的作用是将“字节输入流”转换成“字符输入流”。它继承于Reader。 OutputStreamWriter 的作用是将“字节输出流”转换成“字符输出流”。它继承于Writer。 转载请注明出处:h

XINJing的专栏 323

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

(25)IO流之转换流InputStreamReader和OutputStreamWriter

InputStreamReader:字节到字符的桥梁。 OutputStreamWriter:字符到字节的桥梁。 它们有转换作用,而本身又是字符流。所以在构造的时候,需要传入字节流对象进来。 构造函数: InputStreamReader(InputStream) 通过该构造函数初始化,使用的是本系统默认的编码表GBK。 InputStreamReader(InputS...

apple3515的博客 167

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

java IO流学习总结

java IO流学习总结 近期学习了Java的IO流,尝试着总结一下。 java.io 包下的IO流很多: 其中,以Stream结尾的为字节流,以Writer或者Reader结尾的为字符流。所有的输入流都是抽象类IuputStream(字节输入流)或者抽象类Reader(字符输入流)的子类,所有的输出流都是抽象类OutputStream(字节输出流)或者抽象类Writer(字符输出流)的...

weixin_34290096的博客 2394

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

java中io流是什么_Java中的IO流总结

Java中的IO流总结1. 流的继承关系,以及字节流和字符流。2. 节点流FileOutputStream和FileInputStream和处理流BufferedInputStream和BufferedOutputStream。以及对应的FileOutputWriter,FileInputReader,BufferedInputReader,BufferedOutputWriter。3. 转换流I...

weixin_34653651的博客 173

JAVA IO 专题

首先看一下常用的几种编码方式 public class EncodeDemo { public static void main(String[] agrs)throws IOException { String s="中国ABC"; byte[] byte1=s.getBytes(); //默认采用项目的UTF-8编码 byte[] byte2=s.getBytes("GBK"

小超人的专栏 1423

JAVA IO学习总结

一、java文件模型   在硬盘上的文件是以byte byte byte ...格式存储的,是数据的集合。 二、java.io.File类用于表示文件(目录)   File类只用于表示文件(目录)的信息(名称、大小等),不能用于文件内容的访问。以下是用File类的进本用法。 1 package com.imooc.io; 2 3 import java.io.File; ...

weixin_30512785的博客 166

Java基础入门-IO输入输出流

JAVA-IO输入输出流 1.编码问题 首先直接创建三个.txt文件夹,分别命名联通,联想,联,然后文件内容和文件名称对应, 创建好以后,点击进入查看内容,会看到除了联想意外,别的事乱码的,那么我们可以去查看一下他们的编码格式。 我们可以看到联想的那个文件编码是ANSI,另外的两个编码格式是UTF-8;这就是编码格式造成的。 在Java中举例 public class

天雨的博客 1400

Java中的IO流总结

Java中的IO流总结 2016年08月03日 20:03:22 HankingHu 阅读数:3187 标签: java 更多 个人分类: java 版权声明:本文为博主原创文章,转载请标明出处。 https://blog.youkuaiyun.com/u013309870/article/details/52106935 Java中的IO流总结 1 1. 流的继承关系,...

evilcry2012的专栏 168

学习笔记之JavaSE(41)--IO流3

InputStreamReader类和OutputStreamWriter类

huayuekonghoui的博客 367

java io系列22之 FileReader和FileWriter

FileReader 是用于读取字符流的类,它继承于InputStreamReader。要读取原始字节流,请考虑使用 FileInputStream。 FileWriter 是用于写入字符流的类,它继承于OutputStreamWriter。要写入原始字节流,请考虑使用 FileOutputStream。 转载请注明出处:http://www.cnblogs.com/skywang1234

XINJing的专栏 293

Java基础--IO流

1.IO流概念 1.1流的概念 流(stream):流是一连串流动的数据(字节、字符),以先进先出的方式发送的信息的通道中。 1.2输入流和输出流 输入流:数据从源数据源流入程序的过程称为输入流,可以理解为从源数据源读取数据到程序的过程。 输出流:数据从程序流出到目的地的过程称为输出流,可以理解为把数据从程序写入目的地的过程。 1.3IO流的分类 按照流向分为输...

114

IO缓冲流与转换流

IO缓冲流 Java的IO流按流向分为输入流和输出流,按流的性能,又可以将流分为节点流和处理流。 节点流 节点流:直接与数据源相连,读入或读出。直接使用节点流,读写不方便,为了更快的读写文件,才有了处理流。 常用的节点流 父 类 :InputStream、OutputStream、Reader、Writer 文 件 :FileInputStream、Fil...

ana35287的博客 218

Java SE IO高效缓冲流

IO流-4 1. 高效缓冲流 1.1 概述 ​ 对硬盘进行数据的读取相比于从内存中存取数据要慢的多。所以JDK为我们提供了高效缓冲流来提高我们IO流的效率。内部原理就是借助内存的缓冲区来减少硬盘IO的次数,提高性能。 ​ 1.2 分类 字节流 输入流 ​ BufferedInputStream 输出流 ​ BufferedOutputStream 字符流 输入流 ​ BufferedReader 输出流 ​ BufferedWriter 1.2 对象的创建 构造方法: public Buffe

qq_47201748的博客 265
上一篇: Java 日看一类(40)之IO包中的OutputStream类和Closeable接口
下一篇: Java 日看一类(42)之IO包中的PipedInputStream
wyf95278
博客等级 码龄10年 38粉丝 71原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值