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,持续不断的读取数据,然后写入到输出流中。

  • 相关阅读:
    关于明确我校教学作息时间的通知
    放假时间
    五一上课表
    课表
    mysql 数据库备份与还原
    默默的追随
    2004上半年
    IE慢吗?
    创建的permission java.security.AllPermission;文件,用于加密
    数据库驱动
  • 原文地址:https://www.cnblogs.com/lshan/p/9026088.html
Copyright © 2011-2022 走看看