java字节缓冲流和字符缓冲流

一.字节缓冲流

1.介绍

字节缓冲流根据流的方向,分为:

1.写入数据到流中,字节缓冲输出流 BufferedOutputStream

2.读取流中的数据,字节缓冲输入流 BufferedInputStream

它们的内部都包含了一个缓冲区,通过缓冲区读写,就可以提高了IO流的读写速度

2.字节缓冲输出流BufferedOutputStream

构造方法:

public BufferedOutputStream(OutputStream out):创建一个新的缓冲输出流,以将数据写入指定的底层输出流。

    //字节输出缓冲流
    public static void method01() throws IOException{
      //创建基本的字节输出流
        FileOutputStream fos=new FileOutputStream("E:\\java\\demo.txt");
        BufferedOutputStream bos=new BufferedOutputStream(fos);
        //写数据
        fos.write(100);
        //释放资源
        bos.close();
    }        

3.字节缓冲输入流 BufferedInputStream

构造方法:

public BufferedInputStream(InputStream in)

//字节输入缓冲流
    public static void method02() throws IOException{
        //创建缓冲流对象
        FileInputStream fis=new FileInputStream("E:\\java\\demo.txt");
        BufferedInputStream bis=new BufferedInputStream(fis);
        //读数据
        int len=0;
        while((len=bis.read())!=-1){
            System.out.println((char)len);
        }
        //释放资源
        bis.close();
    }    

4. 复制文件

    public static void method04() throws IOException{
        //明确数据源
        FileInputStream fis=new FileInputStream("E:\\java\\aaa.zip");
        BufferedInputStream bis=new BufferedInputStream(fis);
        //明确目的地
        FileOutputStream fos=new FileOutputStream("E:\\java\\a\\aaa.zip");
        BufferedOutputStream bos=new BufferedOutputStream(fos);
        //开始复制
        long time1=System.currentTimeMillis();
        int len=0;
        byte[] ch=new byte[1024];
        while((len=bis.read(ch))!=-1){
            bos.write(ch,0,len);
        }
        long time2=System.currentTimeMillis();
        System.out.println(time2-time1);
        //释放资源
        bos.close();
        bis.close();
    }

二.字符缓冲流

1.介绍

字符缓冲输入流 BufferedReader

字符缓冲输出流 BufferedWriter

完成文本数据的高效的写入与读取的操作

2.字符缓冲输出流 BufferedWriter

void newLine() 根据当前的系统,写入一个换行符

public static void method01() throws IOException{
        //明确目的地
        FileWriter fw =new FileWriter("E:\\java\\demo01.txt");
        //添加缓冲流
        BufferedWriter bw=new BufferedWriter(fw);
        //写入文件
        //  windows: \r\n
        //   linux:  \n
        //  newline();
        System.out.println(System.in);
        bw.write("你好");
        bw.newLine();
        bw.flush();
        bw.write("java");
        bw.newLine();
        bw.flush();
        bw.write("中国");
        bw.newLine();
        //释放资源
        bw.close();
    }

3.字符缓冲输入流 BufferedReader

public String readLine() 读取一个文本行,包含该行内容的字符串,不包含任何行终止符,如果已到达流末尾,则返回 null

public static void method02() throws IOException{
        //明确数据源
        FileReader fr=new FileReader("E:\\java0929\\demo01.txt");
        //添加缓冲流
        BufferedReader br=new BufferedReader(fr);
        //开始读取文件
        String line=br.readLine();
        System.out.println(line);
        line=br.readLine();
        System.out.println(line);
        line=br.readLine();
        System.out.println(line);
        line=br.readLine();
        System.out.println(line);
        //释放资源
        br.close();
}
public static void method03() throws IOException{
        //明确数据源
        FileReader fr=new FileReader("E:\\java\\demo01.txt");
        //添加缓冲流
        BufferedReader br=new BufferedReader(fr);
        //开始读取文件
        String line=null;
        while((line=br.readLine())!=null){
            System.out.print(line);
        }
        //释放资源
        br.close();
}

4.复制文件

public static void copy() throws IOException{
        //明确数据源
        FileReader fr=new FileReader("E:\\java0929\\demo02.txt");
        BufferedReader br=new BufferedReader(fr);
        //明确目的地
        FileWriter fw=new FileWriter("E:\\java0929\\c\\demo02.txt");
        BufferedWriter bw=new BufferedWriter(fw);
        //开始复制
        String line=null;
        int linenum=0;
        while((line=br.readLine())!=null){
            linenum++;
            bw.write(linenum+" "+line);
            bw.newLine();
            bw.flush();
        }
        //释放资源
        bw.close();
        br.close();
    }

原文地址:https://www.cnblogs.com/akiyama/p/10222983.html

时间: 2024-07-30 16:31:02

java字节缓冲流和字符缓冲流的相关文章

缓冲流之字符缓冲流

字符缓冲流 字符缓冲输入流 BufferedReader 字符缓冲输出流 BufferedWriter 完成文本数据的高效的写入与读取的操作 1  字符缓冲输出流 BufferedWriter void newLine() 根据当前的系统,写入一个换行符 public static void method01() throws IOException{ //明确目的地 FileWriter fw =new FileWriter("E:\\java\\demo01.txt"); //添加

Java IO流之字符缓冲流

字符流: 1.加入字符缓存流,增强读取功能(readLine) 2.更高效的读取数据 BufferedReader 从字符输入流读取文本,缓冲各个字符,从而实现字符.数组和行的高效读取. FileReader:内部使用InputStreamReader,解码过程,byte->char,默认缓存大小为8k BufferReader:默认缓存大小为8k,但可以手动指定缓存大小,把数据读取到缓存中,减少每次转换过程,效率更高 //字符输入缓冲流 private static void charRead

java中关于编码的问题(字符转换流及字符缓冲流 )

上次我们使用的是字节流,还有一种方式就是字符流,上次说过如何分辨使用哪种流,如果记事本可以读懂则使用字符流,否则使用字节流.使用字符流就需要牵扯到编码的问题,下面给出一种转化流的格式. OutputStreamWriter OutputStreamWriter(OutputStream os):默认编码,GBK OutputStreamWriter(OutputStream os,String charsetName):指定编码.InputStreamReader InputStreamRead

10_IO_第10天(字符流、字符缓冲流)

---恢复内容开始--- 今日学习目标 能够说出IO流的分类和功能 能够使用FileWirter写数据到文件 能够明确FileWriter写数据使用两种路径的区别 能够说出FileWriter中关闭和刷新方法的区别 能够使用FileWriter写数据的5个方法 能够使用FileWriter写数据实现换行和追加写 能够使用FileReader读数据 能够使用FileReader读数据一次一个字符数组 能够明确字符缓冲流的作用和基本用法 能够使用缓冲流的特殊功能 FileWriter和FileRea

JAVAIO (文件流与字符数组流)

package com.lz.byteArrayStream; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.Fi

字符缓冲流 Day20

package com.sxt.prac; /* * 缓冲流之字符缓冲流 defaultCharBufferSize = 8192; * 1.读入到程序 * 2.程序写到文件 * 3.采用循环边读边写 * 两个独有的方法: * BufferedReader br.readLine();//读内容 没有返回null * BufferedWriter bw.newLine; */ import java.io.BufferedReader; import java.io.BufferedWriter

Java基础学习笔记二十 IO流

转换流 在学习字符流(FileReader.FileWriter)的时候,其中说如果需要指定编码和缓冲区大小时,可以在字节流的基础上,构造一个InputStreamReader或者OutputStreamWriter,这又是什么意思呢? OutputStreamWriter类 查阅OutputStreamWriter的API介绍,OutputStreamWriter 是字符流通向字节流的桥梁:可使用指定的字符编码表,将要写入流中的字符编码成字节.它的作用的就是,将字符串按照指定的编码表转成字节,

java基础(二十一)IO流(四)

这里有我之前上课总结的一些知识点以及代码大部分是老师讲的笔记 个人认为是非常好的,,也是比较经典的内容,真诚的希望这些对于那些想学习的人有所帮助! 由于代码是分模块的上传非常的不便.也比较多,讲的也是比较清晰的!如果你有需要可以在评论中留下您的邮箱我看到一定会免费发给你的!感谢这个平台让我们大家共同进步吧!! 记住 程序员是无私的!!! 也非常欢迎到我的博客内观看 博客地址:http://www.cnblogs.com/duscl/ /* 1:登录注册IO版本案例(掌握) 要求,对着写一遍. c

Io流中的其他流

数据输入输出流 数据输入流: DataInputStream 数据输出流: DataOutputStream 数据输入输出流的概述 数据输入流,让应用程序读取原始java数据类型从底层输入流中的一个独立于机器的方式.一个应用程序使用一个数据输出流来写数据,以后可以通过数据输入流读取. 输入流是不一定安全的多线程访问.线程安全是可选的,是在这个类中的方法的用户的责任. 特点: 可以写基本数据类型,可以读取基本数据类型 数据输入输出流的使用 写基本数据类型dos.writeInt(45) ;dos.