`

java Nio学习笔记之 字符集

 
阅读更多

Charset(字符集)

在java.nio.charset包中共提供了Charset、CharsetDecoder、CharsetEncoder、 CodeResult、CodingErrorAction五个类,均继承自Object类,其中Charset实现了Comparable接口,其它类 均为自身实现。

Java中的字符使用unicode编码,每个字符占用两个字节。字节码本身只是一些数字,放在正确的上下文中可以被正确的解析。向ByteBuffer中存放数据时需要考虑字符集的编码方式,从中读取时需要考虑字符集的解码。

要读和写文本需要分别使用CharsetDecoder(解码器)和CharsetEncoder(编码器)。

编码:百科中这样定义,编码(coding)是在一个主题或单元上为数据存储,管理和分析的目的而转换信息为编码值(典型地如数字)的过程。在密码 学中,编码是指在编码或密码中写的行为。n位二进制数可以组合成2的n次方个不同的信息,给每个信息规定一个具体码组,这种过程也叫编码。数字系统中常用 的编码有两类,一类是二进制编码,另一类是二—十进制编码。

(1)如何得到一个CharSet

在JDK源码中提供两种方式得到一个CharSet实例:

       CharSet cs = CharSet.forName(“编码方式”);

       CharSet cs = CharSet.defaultCharSet();

第一种方法返回一个指定字符格式的CharSet,第二种方法返回当前虚拟机默认的字符编码格式的CharSet。

(2)如何使用CharSet

得到一个CharSet实例后,我们需要创建一个编码器和一个解码器,使用下面方法进行创建:

       CharSetDecoder decoder = cs.newDecoder();

       CharSetEncoder encoder = cs.newEncoder();

接着我们把ByteBuffer传递给decoder进行编码,返回一个CharBuffer:

       CharBuffer cb = decoder.decode(inputData);

然后我们可以使用encoder进行解码返回一个ByteBuffer:

       ByteBuffer outputData = encoder.encode(cb);

接下来可以进行写等其它操作。

分享到:
评论

相关推荐

    JAVA NIO学习笔记.docx

    - **Charset编码解码**:提供字符集的编码和解码,支持多种字符编码。 - **非阻塞I/O**:通过Selector支持多路复用,允许单线程同时处理多个连接,提高系统伸缩性。 - **Memory Mapped Files**:支持内存映射文件...

    《java学习》-java学习笔记.zip

    Java是一种广泛使用的面向对象的编程语言,以其跨平台、健壮性和安全性著称。这份《java学习》笔记包含了多个...记得实践是检验真理的唯一标准,理论学习之余,多编写代码,解决实际问题,才能真正提升Java编程技能。

    java全套笔记 来自狂神说java笔录.zip

    11. **Java IO/NIO**:深入理解流的分类,学习非阻塞I/O模型NIO(New Input/Output)。 12. **Java 8及更高版本新特性**:包括Lambda表达式、Stream API、Optional类、日期时间API的改进等。 这些笔记内容全面覆盖...

    java基础学习笔记

    本Java基础学习笔记将深入探讨Java的核心概念和技术,帮助初学者建立起坚实的编程基础。 一、Java环境搭建 学习Java首先需要安装Java Development Kit(JDK),这是编写和运行Java程序所需的基本工具集。安装完成后...

    Java 学习笔记.zip

    1. **Java基础**:学习笔记可能涵盖Java的基础语法,如数据类型、变量、运算符、控制流(条件语句、循环)、数组、字符串和异常处理。这些基础知识构成了编写任何Java程序的基础。 2. **面向对象编程**:Java的核心...

    Java+JDK6学习笔记

    本篇将围绕“Java+JDK6学习笔记”展开,探讨在JDK6环境下Java编程的核心知识点。 1. **JDK6概述**:JDK6是Oracle公司于2006年发布的Java平台标准版(Java SE)的一个重要版本,它的全称是Java SE 6,带来了许多新...

    Java JDK 6学习笔记_pdf版(附课本代码)

    这份“Java JDK 6学习笔记”涵盖了从基础到高级的各种主题,是Java初学者和进阶者的重要参考资料。以下是笔记中可能包含的一些关键知识点: 1. **安装与配置**:介绍如何在不同操作系统(如Windows、Linux和Mac OS...

    java学习笔记之Java-IO操作共19页.pdf.zi

    【Java IO操作详解】 在Java编程中,IO(Input/Output)操作是处理数据输入与输出的核心技术。Java-IO操作共19页的笔记详细介绍了这一关键领域,旨在帮助...这19页的学习笔记将是你掌握Java IO操作的重要参考资料。

    良葛格java学习笔记

    【标题】:“良葛格java学习笔记”是一个关于Java编程语言的学习资料集合,由作者林信良编写,旨在分享他的学习心得和实践经验。这个资源特别关注JDK 6.0的新特性和功能,帮助读者更好地理解和掌握这一版本的Java...

    Java JDK 6.0 学习笔记.pdf

    **Java JDK 6.0 学习笔记** Java JDK(Java Development Kit)是Java编程语言的核心组件,包含Java运行环境、编译器、类库以及各种工具,是开发者进行Java程序开发的基础。Java JDK 6.0是Oracle公司发布的一个重要...

    Java JDK 6学习笔记PPT版

    在国际化和本地化方面,JDK 6支持更多的字符集和文本布局算法,使得Java程序能更好地适应全球化的市场需求。 安全方面,JDK 6加强了安全管理器,提供了更精细的权限控制,并增加了对数字证书和SSL/TLS协议的支持,...

    java基础18天Typora笔记

    JDBC(Java Database Connectivity)是Java连接数据库的标准接口,学习如何建立连接、执行SQL语句和处理结果集。 16. **设计模式** 学习常见的设计模式,如单例、工厂、观察者、装饰器等,提升代码的可读性和可...

    java学习笔记4

    Java学习笔记第四部分主要涵盖了Java编程语言的深入学习内容,可能是继基础语法、面向对象编程之后的高级主题。"良葛格"作为编著者,可能以易懂且实用的方式阐述了这些概念。以下是根据标题和描述可能包含的知识点:...

    Java JDK 7学习笔记

    这份"Java JDK 7学习笔记"PDF文档应该涵盖了这些关键特性和更多细节,包括如何使用和理解它们,以及在实际开发中如何应用。对于初学者和有经验的开发者来说,都是一个宝贵的参考资料。通过深入学习和实践,可以提升...

    《IT学习资料2》-java学习笔记.zip

    《IT学习资料2》-java学习笔记.zip 是一个包含了丰富的Java学习资源的压缩包,它提供了从基础到进阶的全面教程。这个压缩包中包含了多个Markdown格式的文档,每个文档对应一个特定的Java编程主题,是学习和巩固Java...

    Java随堂笔记

    这份“Java随堂笔记”正是为了帮助初学者以及希望巩固Java知识的开发者而编写的。笔记内容涵盖了Java的基础到进阶知识,特别是那些在企业开发中不可或缺的部分。 1. **Java基础** - **数据类型**:包括基本数据...

    Java JDK 6学习笔记——ppt简体版

    本篇学习笔记将围绕Java JDK 6的关键特性、语法改进、API更新以及开发实践进行详细讲解。 1. **Java JDK 6概述** - JDK(Java Development Kit)是Java开发的核心组件,包含了Java运行环境(JRE)、编译器(javac...

    Java+JDK+7学习笔记(国内第一本Java+7,前期版本累计销量5万册)源码整理

    本学习笔记聚焦于这一关键版本,旨在帮助读者深入理解和掌握Java 7的核心技术。下面将详细阐述Java JDK 7中的关键知识点。 1. **自动资源管理 (try-with-resources)** Java 7引入了try-with-resources语句,使得...

Global site tag (gtag.js) - Google Analytics