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

  • 相关阅读:
    高程第五章(引用类型)
    第四章(变量、作用域、内存问题)
    label语句和break continue的使用(高程第三章)
    高级程序设计第三章
    max取得数组的最大值
    使用bind()扩充作用域
    函数
    数据类型、字符编码、文件处理
    Python入门
    8.8每日作业系列之循环模块运用
  • 原文地址:https://www.cnblogs.com/lshan/p/9026088.html
Copyright © 2011-2022 走看看