zoukankan      html  css  js  c++  java
  • file文件与base64字符串的相互转换

    今天心情不好,不想说话。

        /**
         * 文件转base64字符串
         * @param file
         * @return
         */
        public static String fileToBase64(File file) {
            String base64 = null;
            InputStream in = null;
            try {
                in = new FileInputStream(file);
                byte[] bytes = new byte[in.available()];
                int length = in.read(bytes);
                base64 = Base64.encodeToString(bytes, 0, length, Base64.DEFAULT);
            } catch (FileNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } finally {
                try {
                    if (in != null) {
                        in.close();
                    }
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
            return base64;
        }
    
        /**
         * base64字符串转文件
         * @param base64
         * @return
         */
        public static File base64ToFile(String base64) {
            File file = null;
            String fileName = "/Petssions/record/testFile.amr";
            FileOutputStream out = null;
            try {
                // 解码,然后将字节转换为文件
                file = new File(Environment.getExternalStorageDirectory(), fileName);
                if (!file.exists())
                    file.createNewFile();
                byte[] bytes = Base64.decode(base64, Base64.DEFAULT);// 将字符串转换为byte数组
                ByteArrayInputStream in = new ByteArrayInputStream(bytes);
                byte[] buffer = new byte[1024];
                out = new FileOutputStream(file);
                int bytesum = 0;
                int byteread = 0;
                while ((byteread = in.read(buffer)) != -1) {
                    bytesum += byteread;
                    out.write(buffer, 0, byteread); // 文件写操作
                }
            } catch (IOException ioe) {
                ioe.printStackTrace();
            } finally {
                try {
                    if (out!= null) {
                        out.close();
                    }
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
            return file;
        }

     因为楼下有教育我的朋友,刚好我又是个善良体贴的仙女,嗯,那把导入的类补充一下:

       import android.os.Environment;
      import android.util.Base64;
      import java.io.ByteArrayInputStream;
      import java.io.File;
      import java.io.FileInputStream;
      import java.io.FileNotFoundException;
      import java.io.FileOutputStream;
      import java.io.IOException;
      import java.io.InputStream;
  • 相关阅读:
    fn project 试用之后的几个问题的解答
    fn project 扩展
    fn project 生产环境使用
    fn project 对象模型
    fn project AWS Lambda 格式 functions
    fn project 打包Function
    fn project Function files 说明
    fn project hot functions 说明
    fn project k8s 集成
    fn project 私有镜像发布
  • 原文地址:https://www.cnblogs.com/Sharley/p/6495427.html
Copyright © 2011-2022 走看看