• .apache.commons.io 源代码学习(二)FilenameUtils类


     FilenameUtils是apache common io中一个独立的工具类,对其他没有依赖,看其源代码的import即可知道。

    import java.io.File;
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.Collection;
    import java.util.Stack;

    这个类的目标是:

    When dealing with filenames you can hit problems when moving from a Windows
     based development machine to a Unix based production machine.
    This class aims to help avoid those problems.

    我们在看看uml类图;

    我们可以注意到,其提供的方法,基本都是静态的,所以,这个类我认为,大部分使用的时候,都不需要实例化,典型的工具类。

    而其目标是在windows系统和unix系统之间的文件名转换,因此,最初就是定义了windows和unix系统的文件的分隔符

        public static final char EXTENSION_SEPARATOR = '.';
      public static final String EXTENSION_SEPARATOR_STR = Character.toString(EXTENSION_SEPARATOR);
        private static final char UNIX_SEPARATOR = '/';
        private static final char WINDOWS_SEPARATOR = '\';
        private static final char SYSTEM_SEPARATOR = File.separatorChar;
        private static final char OTHER_SEPARATOR;
    
        static {
            if (isSystemWindows()) {
                OTHER_SEPARATOR = UNIX_SEPARATOR;
            } else {
                OTHER_SEPARATOR = WINDOWS_SEPARATOR;
            }
        }
    
      
        static boolean isSystemWindows() {
            return SYSTEM_SEPARATOR == WINDOWS_SEPARATOR;
        }
    

      这个,判断是否windows的方法很不错。

  • 相关阅读:
    进程与线程
    java的引用
    基本类型变量、引用类型变量的在java中的存放位置
    Spring学习(三)
    Spring学习(一)
    Struts2学习(三)
    Vue,resource基本使用
    uni-app v-for数据的绑定唯一
    uni-app,v-for时 block 和 view 的使用
    Vue,生命周期函数演示(创建阶段的4个钩子函数,组件运行和销毁阶段的钩子函数)
  • 原文地址:https://www.cnblogs.com/aomi/p/6433371.html
Copyright © 2020-2023  润新知