源代码分析commons-io-2.0.1-src (二)

以前是搞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        //硬连接
 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值