`
younglibin
  • 浏览: 1210866 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

字节与字符的转化接口

 
阅读更多

字节与字符的转化接口

另外数据持久化或网络传输都是以字节进行的,所以必须要有字符到字节或字节到字符的转化。字符到字节需要转化,其中读的转化过程如下图所示:

图 5. 字符解码相关类结构

图 5. 字符解码相关类结构

InputStreamReader 类是字节到字符的转化桥梁,InputStream 到 Reader 的过程要指定编码字符集,否则将采用操作系统默认字符集,很可能会出现乱码问题。StreamDecoder 正是完成字节到字符的解码的实现类。也就是当你用如下方式读取一个文件时:

清单 1.读取文件
 try { 
            StringBuffer str = new StringBuffer(); 
            char[] buf = new char[1024]; 
            FileReader f = new FileReader("file"); 
            while(f.read(buf)>0){ 
                str.append(buf); 
            } 
            str.toString(); 
 } catch (IOException e) {}

FileReader 类就是按照上面的工作方式读取文件的,FileReader 是继承了 InputStreamReader 类,实际上是读取文件流,然后通过 StreamDecoder 解码成 char,只不过这里的解码字符集是默认字符集。

写入也是类似的过程如下图所示:

图 6. 字符编码相关类结构

图 6. 字符编码相关类结构

通过 OutputStreamWriter 类完成,字符到字节的编码过程,由 StreamEncoder 完成编码过程。

分享到:
评论

相关推荐

    串口发送多字节、字符串,数组并控制LED

    标题 "串口发送多字节、字符串,数组并控制LED" 涉及到的是单片机编程中常见的通信方式——串行通信(USART),在这个场景下,主要使用STM32微控制器进行实现。STM32是意法半导体公司推出的基于ARM Cortex-M内核的一...

    16X2字符液晶接口程序.rar_字符液晶

    16x2字符液晶接口程序是驱动这种显示器的软件部分,它负责将计算机或微控制器的指令转化为控制信号,使液晶显示出预设的字符。八位数据线方式是指液晶与微控制器之间的通信方式,其中八条数据线用于一次性传输一个...

    windows 字符数据类型,C++字符数据类型转化

    CString是MFC库中的一个字符串类,它可以存储和操作各种类型的字符串,包括单字节字符和宽字符。CString提供了丰富的字符串操作方法,使得字符串处理变得更加简单高效。 ### 各类型之间的转换 #### 1. BSTR转换到...

    短信猫字符集转化的功能函数

    这些短信猫通常通过串行接口(如RS232或USB)与计算机进行通信,并且需要处理各种字符集转换问题,以便正确地编码和解码短信中的文本数据。在这个特定的案例中,我们关注的是两个关键的字符集:7位编码和UCS2编码。 ...

    STM32串口实验+自定义协议接收16进制数据+发送1个(2个)字符+发送字符串函数.zip

    STM32串口实验是嵌入式开发中的一个重要环节,主要涉及到的是STM32微控制器如何通过串行通信接口(UART)与外部设备交互。在这个实验中,我们重点关注以下几个关键知识点: 1. **STM32串口配置**:STM32系列微控制...

    mfc字符串加解密

    在VC6.0环境下,我们可以使用MFC的`CString`类与第三方加密库结合,比如CryptoAPI(微软提供的加密接口)或开源库如 Crypto++,来实现这个功能。例如,我们可能先将`CString`转换为字节数组,然后用加密库进行加密...

    字符转小数及小数转字符.rar

    这两个子VI,"串口字符转数字(子VI).vi" 和 "数字转串口发送(子VI).vi",分别解决了将单精度浮点型数据(小数)转化为四位字符字符串以及将四位字符字符串还原为单精度浮点数据的问题。以下是对这两个子VI功能的详细...

    QT 收到下位机16进制数转换字符串显示

    你可以使用`QByteArray::fromHex()`或`QString::toLatin1()`方法将16进制字符串转换为字节序列,再通过`QByteArray::toInt()`将其转换为整数。 3. **转换为字符串**:将得到的十进制数值转换为16进制字符串。可以...

    16进制、汉字、字节10进制、NC卡号转化工具

    汉字与16进制或10进制的转换涉及字符编码的解析和转换,这对于理解和处理中文文本至关重要,尤其是在跨平台或跨语言的软件开发中。 3. **字节10进制**:字节(Byte)是计算机存储的基本单位,通常一个字节由8位二...

    iOS 字符串转中文

    在实际开发中,你可能还会遇到其他与中文字符串处理相关的任务,比如分词(Tokenization)、繁体字与简体字的转换、以及词语的词性标注等。这些都可以通过第三方库或者Apple的自然语言处理框架(Natural Language)...

    两种字符集版本的MD5静态库

    这个标题"两种字符集版本的MD5静态库"表明我们正在讨论的是一个支持多字节字符集(MBCS)和Unicode字符集的MD5计算库,这两种字符集是处理不同语言和编码系统的关键。 多字节字符集(MBCS)如GBK或Big5,用于存储非...

    易语言取图标返回png字节集源码

    图标转换成PNG格式后,我们通常会将其转化为字节集,以便于在网络传输或者存储时使用。在易语言中,可以使用内存操作相关的命令,如`内存分配`、`内存复制`等,将PNG图像数据复制到一段内存区域,并返回这段内存的...

    从一个class文件深入理解Java字节码结构

    在Java编程中,源代码首先被Java编译器转化为字节码。例如,以下简单的Java源码: ```java package com.april.test; public class Demo { private int num = 1; public int add() { num = num + 2; return ...

    21 字符汉字取模显示_f103字符_talesg7w_STM32F103_stm32取模字符_

    6. **绘制字符**:通过LCD控制器的接口,逐行逐列地写入像素点,完成字符的显示。 7. **滚动与更新**:如果屏幕空间有限,可以实现字符的滚动效果,或者在显示新的字符时更新屏幕内容。 在实际应用中,可能还会...

    java读取图片并转化为二进制字符串的实现方法

    Java读取图片并转化为二进制字符串的实现方法是一个涉及到文件操作、字节流处理、Base64编码和解码的技术话题。本文将详细介绍上述过程的步骤和关键知识点。 首先,我们需要了解Java中处理文件读写的基本类,比如`...

    Java IO流分析、IO整理与IO优化.pdf

    ##### 5.3 字节与字符的转化接口 由于数据的持久化存储和网络传输通常以字节的形式进行,因此在使用字符流进行数据处理时,需要将字符转化为字节或将字节转化为字符。Java通过`InputStreamReader`和`...

    串行通信,向电脑发送一个字符串

    5. 接收过程:在电脑的接收端,UART接收到串行位流后,根据数据帧格式进行解析,恢复出原始的ASCII码或Unicode码,然后将其转化为可读的字符串。 RS232是串行通信的一个常见标准,它定义了物理接口和电气特性。...

    Android Java代码与JNI交互字符串转换(四)

    - 在Java层,我们可以使用`String.getBytes()`方法将Java字符串转化为字节数组,指定编码为UTF-8。 - 在JNI层,通过`JNIEnv`接口提供的`NewStringUTF()`函数,接收字节数组并创建一个UTF-8编码的JNI字符串。 2. *...

    自定义协议: 以0x5A 0xA5开头,第3个字节表示接下来要保存的字节个数;

    在实际应用中,这些字节通常会根据协议规定进行解码,转化为有意义的数值或命令。 为了实现这个自定义协议,开发人员需要编写相应的软件代码,处理串口事件、解析接收到的数据,并设置正确的标志。在C语言环境下,...

    stm32(32乘64)08接口点阵单色显示程序_08接口_32*64点阵_08接口点阵_stm32led_ordinary9w

    在显示字符或图像时,我们需要将字符或图像的数据转化为适合点阵显示的格式。对于32x64点阵,每个像素对应一个位,所以总共需要256个字节(32x64/8)来存储一帧的数据。在STM32中,可以创建一个数组来存储这些数据,...

Global site tag (gtag.js) - Google Analytics