欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

工具方法

程序员文章站 2022-05-19 09:05:33
...

1.将二进制数据保存到文件中

     /**
     * 把二进制数据转成指定后缀名的文件,例如PDF,PNG等
     *
     * @param contents 二进制数据
     * @param filePath 文件存放目录,包括文件名及其后缀,如D:\file\bike.jpg
     */
    public static void bytesToFile(byte[] contents, String filePath) {
        BufferedInputStream bis = null;
        FileOutputStream fos = null;
        BufferedOutputStream output = null;
        try {
            ByteArrayInputStream byteInputStream = new ByteArrayInputStream(contents);
            bis = new BufferedInputStream(byteInputStream);
            File file = new File(filePath);
            // 获取文件的父路径
            File path = file.getParentFile();
            if (!path.exists()) {
                Log.i("waruler", "文件夹不存在,创建。path=" + path);
                boolean isCreated = path.mkdirs();
                if (!isCreated) {
                    Log.i("waruler", "创建文件夹失败,path=" + path);
                }
            }
            fos = new FileOutputStream(file);
            output = new BufferedOutputStream(fos);
            byte[] buffer = new byte[1024];
            int length;
            while ((length = bis.read(buffer)) != -1) {
                output.write(buffer, 0, length);
            }
            output.flush();
        } catch (Exception e) {
            Log.i("waruler", "输出文件流时抛异常,filePath=" + filePath, e);
        } finally {
            try {
                if (bis != null) {
                    bis.close();
                }
                if (fos != null) {
                    fos.close();
                }
                if (output != null) {
                    output.close();
                }
            } catch (IOException e0) {
                Log.i("waruler", "文件处理失败,filePath=" + filePath, e0);
            }
        }
    }
相关标签: 工具方法