Java 轻松掌握字符缓冲流的使用

 更新时间:2022年04月08日 16:51:20   作者:再美不及姑娘你  
这篇文章主要介绍了Java的字符缓冲流用法,字符缓冲流的用途很多,主要是几个构造方法的使用,在项目开发中经常会用到,需要的朋友参考下吧

一、字符缓冲流

BufferedWriter:文本写入字符输出流,缓冲字符,以提供单个字符,数组和字符串的高效写入。可以指定缓冲区大小,或者可以接受默认大小。 默认值足够大,可用于大多数用途。

构造方法:

BufferedWriter(Writer out)创建使用默认大小的输出缓冲区的缓冲字符输出流
BufferedWriter(Writer out, int sz)创建一个新的缓冲字符输出流,使用给定大小的输出缓冲区

BufferedReader:从字符输入流读取文本,缓冲字符,以提供字符,数组和行的高效读取。可以指定缓冲区大小,或者可以使用默认大小。 默认值足够大,可用于大多数用途。

构造方法:

BufferedReader(Reader in)创建使用默认大小的输入缓冲区的缓冲字符输入流
BufferedReader(Reader in, int sz)    创建使用指定大小的输入缓冲区的缓冲字符输入流

字符缓冲流读数据的方式:

  • int read():一次读取一个字符数据
  • int read(char[] cbuf):一次读一个字符数组数据
  • int read(char cbuf[], int off, int len):一次读一个字符数组部分数据
  • String readLine():读一行文字。结果包含行的内容的字符,不包含任何行终止字符,如果流的结尾已经达到,则为null

字符缓冲流写数据的方式:

  • void write(int c):写入一个字符
  • void write(char[] cbuf):写入一个字符数组
  • void write(char[] cbuf,int off,int len):写入字符数组的一部分
  • void write(String str):写入一个字符串
  • void write(String str,int off,int len):写入一个字符串的一部分
  • void newLine():写一行行分隔符,行分隔符字符串由系统属性定义

例子-字符缓冲流实现复制Java文件:

public class BufferedWriteReaderDemo {
    public static void main(String[] args) throws IOException {
        //使用字符缓冲流实现一个文件的复制
        //使用子类FileWrite\FileReader替代OutputStreamWrite\InputStreamReader
        BufferedReader br=new BufferedReader(new FileReader("E:\\abc.txt"));
        BufferedWriter bw=new BufferedWriter(new FileWriter("F:\\abcdef.txt"));
        //读取数据
//        int len;
//        while ((len=br.read())!=-1){
//            bw.write(len);
//        }
        int len;
        char[] ch=new char[1024];
        while ((len=br.read(ch))!=-1){
            bw.write(ch);
        }
        //释放资源
        br.close();
        bw.close();
    }
}

二、字符缓冲流的特有方法

BufferedWriter:

void newLine():写一行行分隔符,行分隔符字符串由系统属性定义

BufferedReader:

public String readLine():读一行文字。结果包含行的内容的字符串,不包括任何行终止字符;如果流的结尾已经到达,则值为null

例子-字符缓冲流特有方法实现复制Java文件:

public class Demo02 {
    public static void main(String[] args) throws IOException {
        //字符缓冲流特有方法实现复制Java文件
        BufferedReader br=new BufferedReader(new FileReader("E:\\abc.txt"));
        BufferedWriter bw=new BufferedWriter(new FileWriter("F:\\aaa.txt"));
        //读写数据
        String line;
        while ((line=br.readLine())!=null){
            bw.write(line);
            bw.newLine();//换行
            bw.flush();//刷新缓存区
        }
       
        //释放资源
        br.close();
        bw.close();
    }
}

字符流只能复制文本数据,有5种方式,一般采用字符缓冲流的特有功能

到此这篇关于Java 轻松掌握字符缓冲流的使用的文章就介绍到这了,更多相关Java 字符缓冲流内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java操作Elasticsearch rest-high-level-client 的基本使用

    Java操作Elasticsearch rest-high-level-client 的基本使用

    这篇文章主要介绍了Java操作Elasticsearch rest-high-level-client 的基本使用,本篇主要讲解一下 rest-high-level-client 去操作 Elasticsearch的方法,结合实例代码给大家详细讲解,需要的朋友可以参考下
    2022-10-10
  • Spring Bean创建流程分析讲解

    Spring Bean创建流程分析讲解

    很多时候我们需要根据不同的条件在容器中加载不同的Bean,或者根据不同的条件来选择是否在容器中加载某个Bean,这就是Bean的加载控制,一般我们可以通过编程式或注解式两种不同的方式来完成Bean的管理
    2023-01-01
  • java 父类子类有同名方法时如何调用的实现

    java 父类子类有同名方法时如何调用的实现

    这篇文章主要介绍了java 父类子类有同名方法时如何调用的实现,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09
  • springboot+thymeleaf打包成jar后找不到静态资源的坑及解决

    springboot+thymeleaf打包成jar后找不到静态资源的坑及解决

    这篇文章主要介绍了springboot+thymeleaf打包成jar后找不到静态资源的坑及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • Spring实战之缓存使用key操作示例

    Spring实战之缓存使用key操作示例

    这篇文章主要介绍了Spring实战之缓存使用key操作,结合实例形式分析了Spring缓存使用key具体配置、属性、领域模型等相关操作技巧,需要的朋友可以参考下
    2020-01-01
  • IDEA2023版本创建Spring项目只能勾选17和21却无法使用Java8的完美解决方案

    IDEA2023版本创建Spring项目只能勾选17和21却无法使用Java8的完美解决方案

    想创建一个springboot的项目,本地安装的是1.8,但是在使用Spring Initializr创建项目时,发现版本只有17和21,这篇文章主要介绍了IDEA2023版本创建Sping项目只能勾选17和21,却无法使用Java8的解决方法,需要的朋友可以参考下
    2023-12-12
  • Java多线程案例之阻塞队列详解

    Java多线程案例之阻塞队列详解

    阻塞队列是一种特殊的队列. 也遵守 “先进先出” 的原则.阻塞队列能是一种线程安全的数据结构。本文将通过一些示例为大家详细讲讲阻塞队列的原理与使用,感兴趣的小伙伴可以学习一下
    2022-10-10
  • Java对比两个实体的差异分析

    Java对比两个实体的差异分析

    这篇文章主要介绍了Java对比两个实体的差异分析,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • java 1.8 动态代理源码深度分析

    java 1.8 动态代理源码深度分析

    下面小编就为大家带来一篇java 1.8 动态代理源码深度分析。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • SpringBoot实现对超大文件进行异步压缩下载的使用示例

    SpringBoot实现对超大文件进行异步压缩下载的使用示例

    在Web应用中,文件下载功能是一个常见的需求,本文介绍了SpringBoot实现对超大文件进行异步压缩下载的使用示例,具有一定的参考价值,感兴趣的可以了解一下,
    2023-09-09

最新评论