java.io——字符流

 一、字符流基类
1、java.io包中专门用于字符流处理的类,是以Reader和Writer为基础派生的一系列类。
2、字符流以字符为单位,根据码表映射字符,一次可能读多个字节,只能处理字符类型的数据。
3、Reader和Writer是抽象类,只提供一系列用于字符流处理的接口。
4、Reader是所有的 输入字符流 的父类。Reader的方法的用法与作用都与InputStream类似。


 5、Writer是所有的 输出字符流 的父类。Writer方法的用法和作用和OutputStream类似。

6、InputStreamReader 和 OutputStreamWriter 是 java.io 包中用于处理字符流的最基本的类,用来在字节流和字符流之间作为中介从字节输入流读入字节,并按编码规范转换为字符;往字节输出流写字符时先将字符按编码规范转换为字节。使用这两者进行字符处理时,在构造方法中应指定一定的平台规范,以便把以字节方式表示的流转换为特定平台上的字符表示。
InputStreamReader(InputStream in); //缺省规范说明

//指定规范 enc
InputStreamReader(InputStream in, String enc);

OutputStreamWriter(OutputStream out); //缺省规范说明

//指定规范 enc
OutputStreamWriter(OutputStream out, String enc);
      如果读取的字符流不是来自本地时(比如网上某处与本地编码方式不同的机器),那么在构造字符输入流时就不能简单地使用缺省编码规范,而应该指定一种统一的编码规范“ISO 8859_1”,这是一种映射到 ASCCII 码的编码方式,能够在不同平台之间正确转换字符。
InputStreamReader ir = new InputStreamReader(is,"8859_1");


二、缓存流
1、为了提高字符流处理的效率,java.io中也提供了缓冲流BufferedReader和BufferedWrite。
其构造方法与BufferedInputStream和BufferedOutputStream类似。
2、除了read()和write()方法外,他还提供了整行字符处理方法:
(1)public String readLine():BufferedReader的方法,从输入流中读取一行字符,行结束标志\n、 \r或者两者一起(视具体系统而定)
(2)public void newLine(): BufferedWriter的方法,向输出流中写入一个行结束标志,他不是简单的换行符\n 或 \r,而是系统定义的行隔离标志(line separator).

package com.shiyanlou;

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;

public class FileToUnicode {
    public static void main(String args[]) {
        try {
            FileInputStream fis = new FileInputStream("file1.txt");
            InputStreamReader dis = new InputStreamReader(fis);
            BufferedReader reader = new BufferedReader(dis);
            String s;
            //每次读取一行,当改行为空时结束
            while((s = reader.readLine()) != null){
                System.out.println("read:" + s);
            }
            dis.close();
        }
        catch(IOException e) {
            System.out.println(e);
        }
    }
}
file1.txt的内容:
abc
efg
hij
运行结果:



三、其他字符流类
(1)对字符数组进行处理: CharArrayReader、CharArrayWrite
(2)对文本文件进行处理:FileReader、FileWriter
(3)对字符串进行处理:StringReader、StringWriter
(4)过滤字符流:FilterReader、FileterWriter
(5)管道字符流:PipedReader、PipedWriter
(6)行处理字符流:LineNumberReader
(7)打印字符流:PrintWriter

参考:


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值