一、字符流:
1. java.io.Reader和java.io.Writer与其子类等是处理字符流(Character Stream)的相关类。简单地说,就是对流数据以一个字符(两个字节)的长度为单位来处理(0--65535,0x0000--0xffff),并进行适当的字符编码转换处理,即Reader、Writer与其子类可以用于进行所谓纯文本文件的字符读/写。
2. Reader和Writer类支持Unicode标准字符集,字节流只支持ISO-latin-1 8-bit。在处理流数据时,会根据系统默认的字符编码来进行字符转换,Reader和Writer是抽象类,在进行文本文件的字符读写时真正会使用其子类,子类通常会重新定义相关的方法。
3. Reader 的子类InputStreamReader转换读入的两个字节为中文字符的示例:
package ysu.hxy;
import java.io.*;
public class ReaderDemo {
public static void main(String[] args) {
try {
PushbackInputStream pushbackInputStream =
new PushbackInputStream(
new FileInputStream(args[0]));
byte[] array = new byte[2];
int tmp = 0;
int count = 0;
ByteArrayInputStream byteArrayStream = new ByteArrayInputStream(array);
//reader会从已读的位数组中取出数据
InputStreamReader reader = new InputStreamReader(byteArrayStream);
while((count = pushbackInputStream.read(array))
!= -1) {
// 两个字节转换为整数
tmp = (short)((array[0] << 8) |
(array[1] & 0xff));
tmp = tmp & 0xFFFF;
// 判断是否为BIG5,如果是则显示BIG5中文字
if(tmp >= 0xA440 && tmp < 0xFFFF) {
System.out.println("BIG5: " +
(char)reader.read());
//重置ArrayInputStream的读取光标,下次reader才会再从头重新读取数据
byteArrayStream.reset();
}
else {
// 将第二个字节推回流
pushbackInputStream.unread(array, 1, 1);
// 显示ASCII范围的字符
System.out.println("ASCII: " +
(char)array[0]);
}
}
pushbackInputStream.close();
}
catch(ArrayIndexOutOfBoundsException e) {
System.out.println("请指定文件名称");
}
catch(IOException e) {
e.printStackTrace();
}
}
}
分享到:
相关推荐
Java 流在处理上分为字符流和字节流。字符流处理的单元为 2 个字节的 Unicode 字符,分别操作字符、字符数组或字符串,而字节流处理单元为 1 个字节,操作字节和字节数组。 Java 内用 Unicode 编码存储字符,字符流...
java字节流和字符流java字节流和字符流java字节流和字符流
Java字符流和字节流
读取写入文件,javai/o流字符流 eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
JAVA 字符流与字节流
字符流的读写......
java字符流操作 能对各种编码的文件读和写入.
java字符流练习.doc
字符流复制粘贴内容 只能复制粘贴纯文本文件 不能复制图片等内容
java字符流记事本 建议新手看看
java字节流和字符流[整理].pdf
#这辈子最讨厌的就是要分的资源# 源码 http://download.csdn.net/detail/mao_liz/6789341 用法: ascii $xx[$xx[$xx[...]]]] xx=需要的字符的16进制数 只进行了基本的Debug,用法没错的话是不会出错的
java数据流下载 绝对好资料 下载
JavaIO实例,包括:字节流、字符流、缓冲流、转换流
主要描述了常用字节流的用法,附上一些代码!
java 字节与字符流,字符流转换
Java IO字符流和字节流,讲述了字符传输流和字节传输流的不同和作用
JAVA字符流实验代码报告,JAVA Stream
字节流与字符流的练习文档,内附一个简要的记事本综合文档。
数据流,对象流,字节流,字符流 的一些总结说明