zoukankan      html  css  js  c++  java
  • Java文件与io——缓冲流

    对文件或其它目标频繁的读写操作,效率低,性能差。

    使用缓冲流的好处,能够更高效的读写信息,原理是将数据先缓冲起来,然后一起写入或者读取出来。

    BufferedInputStream:为另一个输入流添加一些功能,在创建时,会创建一个内部缓冲区数组,用于缓冲数据

    BufferedOutputStream:通过设置这种输出流,应用程序就可以将各个字节写入底层输出流中,而不必针对每次字节写入调用底层系统

    BufferedReader:从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。

    BufferedWriter:将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。

    public class BufferedStreamDemo {
    
        /**
         * @param args
         */
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            byteStreamOut();
            byteStreamIn();
            charStreamOut();
            charStreamIn();
        }
        //BufferedOutputStream
        public static void byteStreamOut(){
            try {
                OutputStream out=new FileOutputStream("G:\hhb.txt");
                BufferedOutputStream bos=new BufferedOutputStream(out);
                bos.write("hhhhh".getBytes());
                bos.close();
                out.close();
            } catch (FileNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            
        }
        //BufferedInputStream
        public static void byteStreamIn(){
            try {
                InputStream in=new FileInputStream("G:\hhb.txt");
                BufferedInputStream bis=new BufferedInputStream(in);
                byte[] bytes=new byte[1024];
                int len=-1;
                StringBuffer sb=new StringBuffer();
                while((len=bis.read(bytes))!=-1){
                    sb.append(new String(bytes, 0, len));
                }
                bis.close();
                in.close();
                System.out.println(sb);
            } catch (FileNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        //BufferedWriter
        public static void charStreamOut(){
            try {
                Writer w=new FileWriter("G:\hhh.txt");
                BufferedWriter bw=new BufferedWriter(w);
                bw.write("我爱你!");
                bw.close();
                w.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        //BufferedReader
        public static void charStreamIn(){
            try {
                Reader r=new FileReader("G:\hhh.txt");
                BufferedReader br=new BufferedReader(r);
                char[] c=new char[1];
                int len = -1;
                StringBuffer sb=new StringBuffer();
                while((len=br.read(c))!=-1){
                    sb.append(c,0,len);
                }
                br.close();
                r.close();
                System.out.println(sb);
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
                    
        }
    }
  • 相关阅读:
    jQuery中.html(“xxx”)和.append("xxx")的区别和不同
    Jquery中对checkbox的各种“全选”或者“取消”功能实现(特别注意1.6+的一定不能使用attr来取属性了!用prop!)
    Jquery 中each循环嵌套的使用示例教程
    关于Jquery中的$.each获取各种返回类型数据的使用方法
    IMEI是什么? 怎样查手机串号IMEI
    linux useradd(adduser)命令参数及用法详解(linux创建新用户命令)
    linux 的useradd 命令的p选项
    Linux SSH远程文件/目录传输命令scp
    C++ 迭代器 基础介绍
    C++中map的一点疑惑...
  • 原文地址:https://www.cnblogs.com/shenhainixin/p/5117834.html
Copyright © 2011-2022 走看看