在良葛格学习笔记输入输出一章中,本人感觉有些地方说的不是很清楚,现补充如下,望指正!
14.2.9 PushbackInputStream
java.io.PushbackInputStream 拥有一个 PushBack 缓冲区, 从 PushbackInputStream 读出数据后,只要 PushBack 缓冲区没有满,就可以使用 unread() 将数据推回流的前端。
举个使用 PushbackInputStream 的例子。假设一个文本文件中同时存储有 ASCII 码范围的英文字符与 BIG5 码范围的中文字符。您希望判断出哪些位置是 ASCII 而哪些位置是 BIG5 中文字符的位置, BIG5 中文字符使用两个字节来表示一个中文字,而ASCII 只使用一个字节来表示英文字符。
BIG5 中文为了与 ASCII 兼容,低字节范围为 0xA4~0xF9,而高字节为 0x40~0x7E 以及 0xA1~0xFE。存储时低字节先存,再存高字节,所以读取时只要先读到字节是在 0xA4~0xF9,就表示它可能是一个中文字的前半数据。为了说明 PushbackInputStream 的功能,在范例14.15 中一次从文件中读取两个字节,并检查两个字节合并后的整数值是否在 0xA440 与 0xFFFF 之间,这样可以简单地判断其两个字节合并后是否为 BIG5 码。如果是 BIG5 码则使用这两个字节产生 String 实例以显示汉字字符;如果不在这个范围之内,则可能是个 ASCII 范围内的字符,您可以显示第一个字节的字符表示,并将读出的第二个字节推回流,以待下一次可以重新读取。
补充:
BIG5码的编码方案:每个汉字由两个字节构成,第一字节(低字节)的范围 0X81-0XFE,共126种。第二个字节(高字节)的范围分别为 0X40-0X7E, 0XA1-0XFE,共157种。利用这两个字节共可定义出 126 * 157=19782种汉字。存储按照低字节先存入。所以编码范围是0x8140-0xFE7E, 0x81A1-0xFEFE。
其中 0xA140-0xA17E, 0xA1A1-0xA1FE 是图形符号区;0xA440-0xF97E, 0xA4A1-0xF9FE 是汉字区。
常用汉字如一、丁,BIG5码的范围为 0XA440-0XC671,共5401个;较不常用的字,如滥、调,即次常用字,范围为 0XC940-0XF9FE,共7652个。
tmp = (short)((array[0] << 8 ) | (array[1] & 0xff));
假如是汉字“这”,那么输出ffffd5e2
tmp = tmp & 0xFFFF;
输出d5e2
分享到:
相关推荐
良葛格学习笔记.rar 良葛格学习笔记.rar
【标题】"良葛格JAVA学习笔记"是一个专注于Java编程的学习资源,由知名教育者或博主"良葛格"编撰。这份学习笔记以其清晰易懂的讲解方式和详尽的内容,深受学习者喜爱,被强烈推荐。它旨在帮助初学者和有一定基础的...
"Java学习笔记——良葛格"是一份专为初学者设计的教程资料,由良葛格精心编写,旨在帮助读者掌握JDK5.0版本的Java基础知识。JDK(Java Development Kit)是Java开发的核心工具集,包含了编译器、调试器和运行环境等...
良葛格学习笔记的源代码,供有需要的同学下载
良葛格java jdk 5.0学习笔记,良葛格java jdk 5.0学习笔记.zip,良葛格java jdk 5.0学习笔记.zip,良葛格java jdk 5.0学习笔记.zip,良葛格java jdk 5.0学习笔记.zip,良葛格java jdk 5.0学习笔记.zip。
在《JAVA 学习笔记》中,良葛格深入浅出地讲解了Java编程语言的基础知识和进阶技巧,旨在帮助读者从零开始掌握这一广泛应用于企业级开发的重要语言。以下是该学习笔记中可能涵盖的一些核心知识点: 1. **Java基础...
《良葛格java学习笔记》是一份集合了Java学习精华的资源,主要针对初学者和对Java编程感兴趣的读者。这份笔记是由用户从良葛格的网站上精心整理并转化为CHM格式,便于阅读和查阅。CHM(Compiled Help Manual)是微软...
**良葛格JDK5学习笔记** 在Java编程领域,JDK5是一个重要的里程碑,它引入了许多创新特性,极大地提升了开发效率和代码质量。本文将深入探讨这些关键知识点,为初学者提供一个全面的JDK5学习指南。 一、自动装箱与...
以上内容是“良葛格Java学习笔记”中的核心知识点,通过深入学习和实践,可以帮助读者建立起坚实的Java基础,进一步提升编程技能。其中,ch01.pdf可能详细介绍了Java的基础知识,而ch02.pdf可能涵盖了更高级的主题,...
良葛格————JavaJDK5.0学良葛格————JavaJDK5.0学习笔记PDF.rar习笔记PDF.rar良葛格良葛格————JavaJDK5.0学习笔记PDF.rar————JavaJDK5.0学习笔记PDF.rar良葛格————JavaJDK5.0学习笔记PDF.rar良...
【标题】"良葛格Java学习笔记html.rar"是一份以HTML格式编写的Java学习资料,由知名在线教育人物“良葛格”所创建。这份压缩包文件包含了他对Java编程语言深入浅出的讲解,旨在帮助学习者提高Java编程技能。 【描述...
良葛格java学习笔记.txt 网盘永久链接 为方便java学习爱好者而上传
《良葛格Java 学习笔记(繁体全)》是一部详尽的Java学习资源,旨在帮助初学者和进阶者深入理解Java编程语言。笔记内容涵盖了从基础语法到高级特性的广泛领域,以繁体中文呈现,适合中文阅读习惯的用户。下面将对其中...
《良葛格Java学习笔记(完整版)》是一份全面且深入的Java编程教程,适合不同层次的Java学习者,无论你是初学者还是有经验的开发者,都能从中受益。这份笔记详细介绍了Java语言的核心概念、语法特性以及实际开发中的...
"Junit良葛格学习笔记"很可能包含了一系列关于如何有效利用JUnit进行测试的教程和示例。下面将详细阐述JUnit的核心概念、功能以及在实际开发中的应用。 1. **JUnit简介**: JUnit是由Ernst Leiss和Kent Beck开发的...
在"良葛格学习笔记Struts.rar"压缩包中,我们可以期待找到关于Struts框架的详细学习资料,包括理论概念、实践示例以及可能的代码片段。 Struts框架的核心组件包括: 1. **ActionServlet**:作为Struts框架的入口点...
《良葛格 Java 学习笔记》是一份专为初学者设计的 Java 编程教程,旨在帮助初入编程领域的学习者快速掌握 Java 语言的基础知识。这份 PDF 格式的文档详细介绍了 Java 的核心概念、语法和编程技巧,是学习 Java 的...