Java基础学习08--IO--字符流

目录

1.字符流概要

2.部分输入字符流类

3.使用 FileReader 和 FileWriter实现了复制文件内容的目的

4.Writer 输出字符流的可用方法


1.字符流概要

读取字符流类继承自抽象类 Reader,写入字符流继承自抽象类 Write。并且 Reader 的子类必须实现的方法只有 read(char[], int, int)close()。但是,多数子类还重写了 WriterReader 类定义的一些其他方法,以提供更高的效率或完成其他功能。

ReaderWriter 要解决的一个主要问题是国际化。原先的 I/O 类库只支持 8 位的字节流,因此不能很好地处理 16 位的 Unicode 字符。Unicode 是国际化的字符集,这样在增加了 ReaderWriter 之后,就可以自动在本地字符集和 Unicode 国际化字符集之间进行转换,程序员在应对国际化时不需要做过多额外的处理。

2.部分输入字符流类

  • FileReader :与 FileInputStream 对应,从文件系统中读取字符序列。
  • CharArrayReader :与 ByteArrayInputStream 对应,从字符数组中读取数据。
  • PipedReader :与 PipedInputStream 对应,从线程管道中读取字符序列。
  • StringReader :从字符串中读取字符序列。

3.使用 FileReader 和 FileWriter实现了复制文件内容的目的

import java.io.*;
public class TestCharStream{
    public static void main(String[] args) throws IOException {
        FileReader in = null;
        FileWriter out = null;
        try{
            //其中args[0]代表程序执行时输入的第一个参数
            in = new FileReader(args[0]);
            out = new FileWriter(args[1]);
            //通过逐个读取、存入字符,实现文件复制
            int c;
            while ((c = in.read()) != -1) {
                out.write(c);
            }
        }catch(IOException e){
            System.out.println(e.getMessage());
        }finally{
            if(in != null){
                in.close();
            }
            if(out != null){
                out.close();
            }
        }
    }
}

 在程序里,main() 方法中有 args 这个字符串数组参数,通过这个参数,可以获取用户执行程序时输入的多个参数,其中 args[0] 代表程序执行时用户输入的第一个参数,args[1] 代表程序执行时用户输入的第二个参数,依次类推

4.Writer 输出字符流的可用方法

注意,这些方法操作的数据是 char 相关类型,不是 byte 类型

  • Writer append(char c):将指定字符 c 追加到此 Writer,此处是追加,不是覆盖。
  • Writer append(CharSequence csq):将指定字符序列 csq 添加到此 Writer。
  • Writer append(CharSequence csq, int start, int end):将指定字符序列 csq 的子序列,追加到此 Writer。
  • void write(char[] cbuf):写入字符数组 cbuf。
  • void write (char[] cbuf, int off, int len):写入字符数组 cbuf 的某一部分。
  • void write(int c):写入单个字符 c。
  • void write(String str):写入字符串 str。
  • void write(String str, int off, int len):写入字符串 str 的某一部分。
  • void close():关闭当前流。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值