314598340 发表于 2017-12-25 12:25:12

.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>  我们在看看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的方法很不错。
页: [1]
查看完整版本: .apache.commons.io 源代码学习(二)FilenameUtils类