以前是搞J2EE Web开发的,近来开始搞C/S开发,以前在框架下面做事,突然没了,很不适应.特别是C/S要处理相对多的字符串操作,文件操作,感觉很不上手,common IO 看了一些,用上后感觉好多了.
1 byte[] org.apache.commons.io.ByteOrderMark.getBytes()
/** * Return a copy of the BOM's bytes. * * @return a copy of the BOM's bytes */ public byte[] getBytes() { byte[] copy = new byte[bytes.length]; for (int i = 0; i < bytes.length; i++) { copy[i] = (byte)bytes[i]; } return copy; }
这里 bytes 为已存在的byte数组,但这里重新复制了一个返回,目的是为了防止bytes 被其它的对象持有.
2 boolean org.apache.commons.io.FileUtils.isSymlink(File file) throws IOException
public static boolean isSymlink(File file) throws IOException { if (file == null) { throw new NullPointerException("File must not be null"); } if (FilenameUtils.isSystemWindows()) {//如果 是在windows平台上 return false; } File fileInCanonicalDir = null; if (file.getParent() == null) { fileInCanonicalDir = file; } else { File canonicalDir = file.getParentFile().getCanonicalFile(); fileInCanonicalDir = new File(canonicalDir, file.getName()); } if (fileInCanonicalDir.getCanonicalFile().equals(fileInCanonicalDir.getAbsoluteFile())) { return false; } else { return true; } }
这里判断一个文件是不是Linux下的软连接文件,因为如果是软连接文件,那它的 规范形式指的就是它指向的路径,Java虽可以跨平台,但各种平台下文件格式却是没办法统一的.
ln -s /boot/grub/grub.cfg //软连接 ln -f /boot/grub/grub.cfg //硬连接