【Java 笔记】字符输出/输入流类:Writer/Reader

Writer 字符输出流

  • 字符输出流
  • java.io.Writer 所有字符输出流的超类
  • 写文件,写文本文件
  • 写的方法 write
  • write(int c) 写1个字符
  • write(char[] c)写字符数组
  • write(char[] c,int,int)字符数组一部分,开始索引,写几个
  • write(String s) 写入字符串
  • Writer类的子类对象 FileWriter
  • 构造方法: 写入的数据目的 参数:File 类型对象 String 文件名
  • 字符输出流写数据的时候,必须要运行一个功能,刷新功能 flush()

FileWriter

public class WriteDemo {
    public static void main(String[] args) throws IOException{
        FileWriter fw = new FileWriter("e:\\1.txt");

        //写1个字符
        fw.write(100);
        fw.flush();

        //写1个字符数组
        char[] c = {'a','b','c','d','e'};
        fw.write(c);
        fw.flush();

        //写字符数组一部分
        fw.write(c, 2, 2);
        fw.flush();

        //写如字符串
        fw.write("你好 ");
        fw.flush();

        fw.close();
    }
}

Reader 字符输入流

FileReader

import java.io.FileReader;
import java.io.IOException;

public class ReaderDemo {
    public static void main(String[] args) throws IOException {
        FileReader fr = new FileReader("e:\\1.txt");
      /*int len = 0 ;
      while((len = fr.read())!=-1){
         System.out.print((char)len);//可读取中文
      }*/
        char[] ch = new char[1024];
        int len = 0 ;
        while((len = fr.read(ch))!=-1){
            System.out.print(new String(ch,0,len));
        }

        fr.close();
    }
}

文本复制

  • 字符流复制文本文件,必须文本文件
  • 字符流查询本机默认的编码表,简体中文GBK/UTF-8
  • FileReader读取数据源
  • FileWriter写入到数据目的
    public class FileCopyDemo2 {
        public static void main(String[] args) {
            FileReader fr = null;
            FileWriter fw = null;
            /*注意异常处理方式*/
            try{
                fr = new FileReader("E:\\DMJ.rar");
                fw = new FileWriter("E:\\DMJ\\DMJ.rar");
                char[] cbuf = new char[1024];
                int len = 0 ;
                while(( len = fr.read(cbuf))!=-1){
                    fw.write(cbuf, 0, len);
                    fw.flush();
                }
            }catch(IOException ex){
                System.out.println(ex);
                throw new RuntimeException("复制失败");
            }finally{
                try{
                    if(fw!=null)
                        fw.close();
                }catch(IOException ex){
                    throw new RuntimeException("释放资源失败");
                }finally{
                    try{
                        if(fr!=null)
                            fr.close();
                    }catch(IOException ex){
                        throw new RuntimeException("释放资源失败");
                    }
                }
            }
        }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值