Java bytes写入文件的通用方法

对于字节流byte[] bytes,写入文件,是一个通用方法,生成的文件只有扩展名不同,可以是任意属性文件【PDF,JPG,PNG,EXE,DLL……】。

附上代码:


    public static boolean writeFile(byte[] bytes, String filePath) {
        boolean flag = false;
        if (StringUtils.isNotEmpty(filePath) && bytes.length > 0) {
            mkdirs(filePath);
            try (FileOutputStream fos = new FileOutputStream(filePath)) {
                fos.write(bytes);
                flag = true;
            } catch (IOException e) {
                log.error("写入文件时出现错误:" + e.getMessage());
            }
        }
        return flag;
    }

    public static boolean mkdirs(String filepath) {
        boolean retBool = true;
        //TODO:判断文件及路径是否存在
        if (StringUtils.isEmpty(filepath) || !filepath.contains("/")) {
            return false;
        }
        String path = filepath.substring(0, filepath.lastIndexOf("/"));
        File file = new File(path);
        if (file.exists()) {
            if (!file.isDirectory()) {
                file.delete();
                file.mkdirs();
            }
        } else {
            file.mkdirs();
        }
        return retBool;
    }

上面用到判定空的依赖:

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.14.0</version>
</dependency>

对于文件路径的判定符,没有使用:File.separator,因为这个File.separator在Windows下是"\",在Linux下是"/",但是在Java语言里面路径符"/"是通用的,而"\"不通用,我们写代码需要注意。

  • 12
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值