zoukankan      html  css  js  c++  java
  • IOUtils总结

     

     

     

     

     

     

     

     参考:https://www.cnblogs.com/xing901022/p/5978989.html

    常用的静态变量

    在IOUtils中还是有很多常用的一些变量的,比如换行符等等

    
    public static final char DIR_SEPARATOR_UNIX = '/';
    public static final char DIR_SEPARATOR_WINDOWS = '\';
    public static final char DIR_SEPARATOR;
    public static final String LINE_SEPARATOR_UNIX = "
    ";
    public static final String LINE_SEPARATOR_WINDOWS = "
    ";
    public static final String LINE_SEPARATOR;
    
    
    static {
        DIR_SEPARATOR = File.separatorChar;
        
        StringBuilderWriter buf = new StringBuilderWriter(4);
        PrintWriter out = new PrintWriter(buf);
        out.println();
        LINE_SEPARATOR = buf.toString();
        out.close();
    }

    常用方法

    copy

    这个方法可以拷贝流,算是这个工具类中使用最多的方法了。支持多种数据间的拷贝:

    copy(inputstream,outputstream)
    copy(inputstream,writer)
    copy(inputstream,writer,encoding)
    copy(reader,outputstream)
    copy(reader,writer)
    copy(reader,writer,encoding)

    copy内部使用的其实还是copyLarge方法。因为copy能拷贝Integer.MAX_VALUE的字节数据,

    copyLarge

    这个方法适合拷贝较大的数据流,比如2G以上。

    copyLarge(reader,writer) 默认会用1024*4的buffer来读取
    copyLarge(reader,writer,buffer)

    内部的细节可以参考:

     public static long copyLarge(Reader input, Writer output, char [] buffer) throws IOException {
            long count = 0;
            int n = 0;
            while (EOF != (n = input.read(buffer))) {
                output.write(buffer, 0, n);
                count += n;
            }
            return count;
        }

    这个方法会用一个固定大小的Buffer,持续不断的读取数据,然后写入到输出流中。

  • 相关阅读:
    浏览器渲染引擎工作原理
    js运行原理与机制
    新式网络浏览器幕后揭秘
    网站身份信息验证规则Cookie、Session、Token、JWT说明
    http简介
    react全家桶从0搭建一个完整的react项目(react-router4、redux、redux-saga)
    雅虎前端优化的35条军规
    服务端渲染与客户端渲染
    DataURL与File,Blob,canvas对象之间的互相转换的Javascript
    docker安装samba
  • 原文地址:https://www.cnblogs.com/lshan/p/9026088.html
Copyright © 2011-2022 走看看