java中的字符流[49]

发布于:2022-12-02 ⋅ 阅读:(196) ⋅ 点赞:(0)

java中的字符流[49]




一、字符流概念

字符流:每次操作单位为一个字符,文件字符流操作会自带缓存,默认大小为1024字节,在缓存满后,或手动刷新缓存或关闭流时,会把数据写入文件中.字符流内部实现还是字节流.

字符输出流:Writer:写入字符流抽象类,对文件操作使用FileWriter实例化
字符输入流:Reader:读取字符流抽象类,使用FileReader类实例化

二、代码演示

 //字符输出流
 private static void Sout(){
    //指定文件
    File file=new File("D:/files/test1.txt");
    try {
        //创建字符输出流,true表示追加,默认覆盖
        Writer writer=new FileWriter(file,true);
        //可直接将字符串进行输出,System.getProperty("line.separator"):表示本机换行标签
        writer.write(System.getProperty("line.separator")+"你好字符输出流"+System.getProperty("line.separator"));
        //关闭字符输出流
        writer.close();
    } catch (IOException e) {
        e.printStackTrace();
    }
}
//字符输入流
private static void Sin(){
    //指定文件
    File file=new File("D:/files/test1.txt");
    try {
        //创建字符输入流
        Reader reader=new FileReader(file);
        //字符输入流要创建字符数组
        char[] chars=new char[1024];
        //字符长度
        int len=-1;
        //转换成String
        StringBuilder sb=new StringBuilder();
        //循环读取,并添加进StringB
        while ((len=reader.read(chars))!=-1){
            sb.append(chars,0,len);
        }
        //关闭字符输入流
        reader.close();
        System.out.println(sb);
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

三.字符流和字节流的区别

在所有操作里面,字节永远是最基础的,如果确认流里面只有可打印字符,包括中英文,可以考虑使用字符流,由于编码不同,字符流是根据指定的编码.将一个或多个字节转换为java里面的Unicode字符.
总结:一般操作非文本文件时,使用字节流,如果确认流是可打印字符,或者文本文件,那么使用字符流会简便,如不确认,则使用字节流总是不会出错的.

四.小结

本章概述了java中的字符流,字符流可以说是,处理字符串文本时的首选,如果在确定要处理的文件内都是字符类型的时候,优先选择字符流;
有哪里不足或者有更好的建议,欢迎留言吐槽,有哪里不懂的小伙伴,可以私信我,我会一一答复,感谢认可,感谢支持!

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到