zoukankan      html  css  js  c++  java
  • .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的方法很不错。

  • 相关阅读:
    final
    职场语句
    故事
    三个关键字
    关于重读字母去掉的代码
    Java书
    docker私库harbor的搭建
    配置允许匿名用户登录访问vsftpd服务,进行文档的上传下载、文档的新建删除等操作
    docker容器内外相互拷贝数据
    docker
  • 原文地址:https://www.cnblogs.com/aomi/p/6433371.html
Copyright © 2011-2022 走看看