Reader:字符输入流

本文深入讲解Java中的字符流,重点介绍了Reader和FileReader类的功能与使用方法,包括构造方法、read()方法及如何利用字符流进行文件复制。通过实例演示了如何读取文件并逐字符显示,以及如何将一个文本文件的内容复制到另一个文件。

API介绍:
在这里插入图片描述
解析:Reader类是支付方输入流的根,是一个类的抽象,其子类必须重写read()和close方法。
功能方法:
在这里插入图片描述
FileReader类
API介绍:
在这里插入图片描述

解析:FileReader类是读取字符文件的方便类,方便体现在两点,首先有默认字符编码表(与操作系统编码表一致),第二有默认换字符缓冲区大小。如果需要指定该两点,需要使用InputStreamRead类。
构造方法:在这里插入图片描述

public class Demo16 {
    public static void main(String[] args) throws FileNotFoundException {
        FileReader in = new FileReader("文件地址");
        System.out.println(in);//输出对象地址。
        File file = new File("文件地址");
        FileReader in2 = new FileReader(file);
        System.out.println(in2);//输出对象地址

    }
}

功能方法(与read类功能一致)

public class Demo17 {
    public static void main(String[] args) throws IOException {
        FileReader in = new FileReader("文件地址");
        int c =in.read();
        System.out.println(c);
        char [] cs = new char[1024];
        int len =-1;
        while((len=in.read(cs))!=-1){
            System.out.println(new String(cs,0,len));
            //一堆一堆字符某部分(少用)
            char [] ch = new char[1024];
            int leng = -1;
            while((leng=in.read(ch,1,2))!=-1){
                System.out.println(new String(ch,1,2));
            }
            in.close();
        }
    }
}

字符输入流实现文件复制操作:
在这里插入图片描述
文件文本:

public class Demo18 {
    public static void main(String[] args) throws IOException {
        FileReader in = new FileReader("文件地址");
        FileWriter out = new FileWriter("需要复制的到的地址");
        //2、FileReader 字符读取
        //2、FileReader 字符读取
//        int c = -1;
//        while ((c = in.read()) != -1) {
//            //3、FileWriter 字符写入
//            out.write(c);
//
        
        char [] chs = new char[1024];
        int len = -1;
        while((len=in.read(chs))!=-1){
            out.write(chs,0,len);
        }

        System.out.println("复制成功!");
    }
}

注;非文本文件无法复制非文本文件,会导致文件损坏。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值