Android ContentResolver Read fileUriToBase64(Uri uri, ContentResolver resolver)

Here you can find the source of fileUriToBase64(Uri uri, ContentResolver resolver)

Description

File uri to base64.

License

Open Source License

Parameter

Parameter Description
uri the uri
resolver the resolver

Return

the string

Declaration

public static String fileUriToBase64(Uri uri, ContentResolver resolver) 

Method Source Code

//package com.java2s;
/*// w  w  w  . j ava2 s. c  o m
 * Odoo, Open Source Management Solution
 * Copyright (C) 2012-today Odoo SA (<http:www.odoo.com>)
 * 
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as
 * published by the Free Software Foundation, either version 3 of the
 * License, or (at your option) any later version
 * 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details
 * 
 * You should have received a copy of the GNU Affero General Public License
 * along with this program.  If not, see <http:www.gnu.org/licenses/>
 * 
 */

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import android.content.ContentResolver;

import android.net.Uri;
import android.util.Base64;

public class Main {
    /**
     * File uri to base64.
     * 
     * @param uri
     *            the uri
     * @param resolver
     *            the resolver
     * @return the string
     */
    public static String fileUriToBase64(Uri uri, ContentResolver resolver) {
        String encodedBase64 = "";
        try {
            byte[] bytes = readBytes(uri, resolver);
            encodedBase64 = Base64.encodeToString(bytes, 0);
        } catch (IOException e1) {
            e1.printStackTrace();
        }
        return encodedBase64;
    }

    /**
     * Read bytes.
     * 
     * @param uri
     *            the uri
     * @param resolver
     *            the resolver
     * @return the byte[]
     * @throws IOException
     *             Signals that an I/O exception has occurred.
     */
    private static byte[] readBytes(Uri uri, ContentResolver resolver)
            throws IOException {
        // this dynamically extends to take the bytes you read
        InputStream inputStream = resolver.openInputStream(uri);
        ByteArrayOutputStream byteBuffer = new ByteArrayOutputStream();

        // this is storage overwritten on each iteration with bytes
        int bufferSize = 1024;
        byte[] buffer = new byte[bufferSize];

        // we need to know how may bytes were read to write them to the
        // byteBuffer
        int len = 0;
        while ((len = inputStream.read(buffer)) != -1) {
            byteBuffer.write(buffer, 0, len);
        }

        // and then we can return your byte array.
        return byteBuffer.toByteArray();
    }
}

Related

  1. readBytes(Uri uri, ContentResolver resolver)
  2. getContentFromProvider( ContentResolver contentResolver, Uri uri, String[] valueTypes)
  3. getExifOrientation(ContentResolver cr, Uri uri)