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;
  • 相关阅读:
    段落排版--对齐
    1055. The World's Richest (25)
    1054. The Dominant Color (20)
    (八十一)利用系统自带App来实现导航
    (八十)MapKit放置系统默认大头针和自定义大头针
    (七十九)MapKit的基本使用
    1052. Linked List Sorting (25)
    (七十八)使用第三方框架INTULocationManager实现定位
    (七十七)地理编码与反地理编码
    1051. Pop Sequence (25)
  • 原文地址:https://www.cnblogs.com/Sharley/p/6495427.html
Copyright © 2011-2022 走看看