zoukankan      html  css  js  c++  java
  • java中的缓冲流!

    package cn.zhozuohou;
    
    import java.io.BufferedInputStream;
    import java.io.BufferedOutputStream;
    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.IOException;
    
    /*
     * 一、缓冲流?
     *       【缓冲流的目的就是提高读写效率。】
     * 
     * 二、字节输入输出缓冲流!
    
      1.字节输入缓冲流!
           BufferedInputStream  读! read()  复制!文件到程序!  BufferedInputStream a1=new BufferedInputStream(new FileInputStream(文件));
      2.字节输出缓冲流!
           BufferedOutputStream  写! write() 拷贝!程序到文件!  FileOutputStream a1=new FileOutputStream("文件);
    
      3.字节缓冲流拷贝文件,效率非常高!
        1.先读后写
          BufferedInputStream a1=new   BufferedInputStream (new FileInputStream("D:\XMind\1.dat"));
          BufferedOutputStream a2=new   BufferedOutputStream(new FileOutputStream("d:\game\1.dat"));
    
      三、字符输入输出缓冲流!
      
       1.字符输入缓冲流。读!read
          BufferedReader;        BufferedReader a1=new BufferedReader(new FileReader(文件名));  字符类型 String char
    
       2.字符输出缓冲流! 写! write
          BufferedWrite;         FileWriter a1=new FileWriter(文件名);
          
       3.字符缓冲流拷贝文件!
              BufferedReader a1=new BufferedReader(new FileReader("d:\game\abc.txt"));
           BufferedWriter a2=new BufferedWriter(new FileWriter("d:\day13\abc.txt"));
    
     * 
     * 
     */
    public class 缓冲流 {
        public static void main(String[] args) throws IOException {
             bufferedInputStream();     //1.字节输入缓冲流  读!   慢  快!
             bufferedOutputStream(); //2.字节输出缓冲流
    //         copy01();                //3.字节缓冲流拷贝文件!  速度快!
    //         copy02();                //4.普通字节流拷贝文件!
             bufferedReader();        //5.字符输入缓冲流!
             bufferedWriter();        //6.字符输出缓冲流!
             copy03();                //7.字符缓冲流流复制文件!
            
        }
        //7.字符缓冲流流复制文件!
        private static void copy03() throws IOException{
            BufferedReader a1=new BufferedReader(new FileReader("d:\game\aa.txt"));
            BufferedWriter a2=new BufferedWriter(new FileWriter("C:\aa.txt"));
            int len=0;
            char[]b=new char[1024*10000];
            while ((len=a1.read(b))!=-1) {
                a2.write(b,0,len);
            }
            a1.close();
            a2.close();
            
        }
        //6.字符输出缓冲流!
        private static void bufferedWriter() throws IOException{
            BufferedWriter a1=new BufferedWriter(new FileWriter("d:\game\aaa.txt"));
            a1.write("你好");
            a1.flush();
            String b="zhou xu feng";
            a1.write(b,0,8);
            a1.flush();
            a1.close();
            
            
        }
        //5.字符输入缓冲流!
        private static void bufferedReader() throws IOException {
            int num=0;
            BufferedReader a1=new BufferedReader(new FileReader("d:\game\aa.txt"));
            String line;                                                                    //缓冲流特有方法 读取文本单行!
            byte []b=new byte[1024*10];                                                    //快速读取!
            while ((line=a1.readLine())!=null) {                                            //集合非空!
                num++;
                System.out.println("第"+num+"行的内容  "+line);
            }
            a1.close();
        }
        //4.普通字节流拷贝文件!
        private static void copy02() throws IOException{
            long t1=System.currentTimeMillis();
            FileInputStream a1=new FileInputStream("E:\代码\27\视屏\1.mp4");
            FileOutputStream a2=new FileOutputStream("d:\1.mp4");
            int len=0;
            byte []b=new byte[1024*10000];
            while ((len=a1.read(b))!=-1) {
                a2.write(b,0,len);
            }
            a1.close();
            a2.close();
            long t2=System.currentTimeMillis();
            System.out.println("利用字节流复制文件的时间!"+(t2-t1)+"毫秒");
        }
        //3.字节缓冲流拷贝文件!  速度快!
        private static void copy01() throws IOException{
            long t1=System.currentTimeMillis();
            BufferedInputStream a1=new BufferedInputStream(new FileInputStream("E:\代码位置\27\视屏\1.mp4"));
            BufferedOutputStream a2=new BufferedOutputStream(new FileOutputStream("d:\1.mp4"));
            int len=0;
            byte []b=new byte[1024*10000];
            while ((len=a1.read(b))!=-1) {
                a2.write(b,0,len);
            }
            a1.close();
            a2.close();
            long t2=System.currentTimeMillis();
            System.out.println("利用字节缓冲流复制文件的时间!"+(t2-t1)+"毫秒");
        
        }
         //2.字节输出缓冲流
        private static void bufferedOutputStream() throws IOException {
            BufferedOutputStream a1=new BufferedOutputStream(new FileOutputStream("d:\game\aa.txt"));
            a1.write(100);
            //添加字符串!
            byte b[]="zhou xu feng".getBytes();
            a1.write(b,0,12);
            a1.close();    
        }
        //1. 字节输入缓冲流  读!   慢  快!
        private static void bufferedInputStream() throws IOException{
            BufferedInputStream a1=new BufferedInputStream(new FileInputStream("d:\game\aa.txt"));
                                                                                    /*1.快速读取方式
                                                                                        int len=0;    
                                                                                        byte[] b=new byte[1024*10];
                                                                                        while ((len=a1.read(b))!=-1) {
                                                                                        System.out.println(new String(b,0,len));
                                                                                    }*/
            //普通方式!
            int len=0;
            while ((len=a1.read())!=-1) {
                System.out.print((char)len+"  ");                                    //直接输出len 是一堆数字 通过(char)将他们转换成字符
            }
            
            a1.close();
            System.out.println("===================");
        }    
    }
  • 相关阅读:
    Java实现 LeetCode 792 自定义字符串排序(暴力)
    Java实现 LeetCode 792 自定义字符串排序(暴力)
    asp.net session对象的持久化
    Java实现 LeetCode 791 自定义字符串排序(桶排序)
    Java实现 LeetCode 791 自定义字符串排序(桶排序)
    Java实现 LeetCode 791 自定义字符串排序(桶排序)
    Java实现 LeetCode 790 多米诺和托米诺平铺(递推)
    Java实现 LeetCode 790 多米诺和托米诺平铺(递推)
    Java实现 LeetCode 790 多米诺和托米诺平铺(递推)
    小白也能看懂的约瑟夫环问题
  • 原文地址:https://www.cnblogs.com/ZXF6/p/10602592.html
Copyright © 2011-2022 走看看