• 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: 
    
            //   linux:  
    
            //  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();
        }

     

  • 相关阅读:
    spring对事务的配置
    Mysq中的流程控制语句的用法
    mysql存储过程和常用流程控制
    ztree更换节点图标
    eclipse调试(debug)的时候,出现Source not found,Edit Source Lookup Path,一闪而过
    myeclipse如何设置或关闭断点调试自动跳入debug模式
    Druid数据源对数据库访问密码加密好麻烦
    js中if()条件中变量为false的情况
    TFS2008 安装图解(详细版本)(转载)
    数字格式化
  • 原文地址:https://www.cnblogs.com/akiyama/p/10222983.html
Copyright © 2020-2023  润新知