.apache.commons.io 源代码学习(二)FilenameUtils类
2017-02-23 14:36 很大很老实 阅读(1001) 评论(0) 编辑 收藏 举报
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的方法很不错。