字符流

字符流

字符流的父类(抽象类)

  • reader字符输入流
    • public int read(){}
    • public int read(char[] c ){}
    • public int read(char[] b, int off, int len ){}
  • writer字符输出流
    • public void write( int n ){}
    • public void write( String str){}
    • public void write(char[] c ){}

FileReader 文件读取

  • public int read(char[] c ) //从流中读取多个字符,将读取到内容存到c数组,返回实际读取的字符数;如果达到文件的尾部,则返回 -1。
/**
 * 使用FileReader读取文件
 * */
public class Demo8 {
    public static void main(String[] args) throws Exception {
        FileReader fr = new FileReader("e:\\hello.txt");  //中英文都可以读
        //读取
        //2.1单个字符读取去
//        int data = 0;
//        while ((data = fr.read())!= -1){  //读取一个字符
//            System.out.println((char)data);
//        }
        //2.2
        char[] buf = new char[1024];
        int count = 0 ;
        while ((count = fr.read(buf))!= -1){
            System.out.println(new String(buf,0,count));
        }
        //3关闭
        fr.close();
        System.out.println("执行完毕");
    }
}

FileWriter 文件写入

  • public void write(String str ){} //一次写多个字符,将b数组中所有字符,写入输出流。
/**
 * 使用FileWriter写入文件
 * */
public class Demo9 {
    public static void main(String[] args) throws Exception {
        //1创建FileWrite对象
        FileWriter fw = new FileWriter("e:\\write.txt");
        //写入
        for (int i = 0; i < 10; i++) {
            fw.write("java是世界上最好的语言\r\n");
            fw.flush();//刷新
        }
        //关闭
        fw.close();
        System.out.println("执行完毕");
    }
}

字符流复制文件

字符流只能复制文本文件,字节流可以复制任意文件

/**
 * 使用FileReader和FileWriter复制文本文件,不能复制图片或二进制文件
 * */
public class Demo10 {
    public static void main(String[] args) throws Exception{
        //1创建FileReader FileWriter
        FileReader fr = new FileReader("e:\\write.txt");
        FileWriter fw = new FileWriter("e:\\write2.txt");
        //2读写
        int data = 0;
        while ((data = fr.read())!=-1){
            fw.write(data);
            fw.flush();
        }
        //3关闭
        fr.close();
        fw.close();
        System.out.println("复制完毕");
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值