JAVA中的缓冲流

JAVA中的一些缓冲流

缓冲流又称为高效流,它相较于原始流来说,自带缓冲区,可以提高原始字节流,字符流的读写性能

常见的缓冲流像是BufferedInputStream,BufferedOutputStream,BufferedReader,BufferedWriter等

字节缓冲输入流和输出流自带了8KB的缓冲池,我们可以从缓冲池中读取写入数据,所以性能会有提升

一个利用缓冲流拷贝文件的示例如下

package BasicPractice.FileTest;

import java.io.*;

public class FileTest04 {
    public static void main(String[] args){

        try(
        //try括号里只能放资源对象,这些资源对象用完会自动关闭资源,不用手动写close()
        //创建一个字节输入流管道
        InputStream fis = new FileInputStream("src\\filetest04.txt");

        InputStream bis = new BufferedInputStream(fis);

        //创建一个字节输出流管道
        OutputStream fos = new FileOutputStream("src\\filetest05.txt");

        OutputStream bos = new BufferedOutputStream(fos);
        ){
            //创建一个字节数组用来转移数据
            byte[] buffer = new byte[1024];

            int len;
            while((len = bis.read(buffer)) != -1){
                bos.write(buffer, 0, len);
            }

        }catch (Exception e){
            e.printStackTrace();
        }

    }
}

利用FileReader的readline方法读取文件内容

package BasicPractice.FileTest;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class FileTest07 {
    public static void main(String[] args) throws IOException {
        FileReader fw = new FileReader("src\\filetest08.txt");

        BufferedReader br = new BufferedReader(fw);

        String line;
        while((line = br.readLine()) != null){
            System.out.println(line);
        }
    }
}

利用FileWriter写入数据

package BasicPractice.FileTest;

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;

public class FileTest08 {
    public static void main(String[] args) throws IOException {
        FileWriter fw = new FileWriter("src\\filetest07.txt",true);

        BufferedWriter bw = new BufferedWriter(fw);
        //这么做只能写单个字符,像abc就会报错
        bw.write(97);
        bw.newLine();
        bw.write('王');
        bw.newLine();

        //循环写
        //写入一个字符
        bw.write('哈');
        //换行
        bw.write("\r\n");

        //写入一堆字符串
        String str = "我就是我,是颜色不一样的烟火";
        bw.write(str);

        bw.write("\r\n");
        //写一个字符数组
        char[] chars = str.toCharArray();
        bw.write(chars);

        bw.write("\r\n");
        //写入字符串中指定的内容,示例为从第4个字符开始,往后写5个
        bw.write(str,3,5);

        //关闭流
        bw.close();
        fw.close();
    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值