Android ContentResolver Read readBytes(Uri uri, ContentResolver resolver)

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

Description

Read bytes.

License

Open Source License

Parameter

Parameter Description
uri the uri
resolver the resolver

Exception

Parameter Description
IOException Signals that an I/O exception has occurred.

Return

the byte[]

Declaration

private static byte[] readBytes(Uri uri, ContentResolver resolver)
        throws IOException 

Method Source Code

//package com.java2s;
/*//from w w w  .  j a v  a  2 s  .c  om
 * 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;

public class Main {
    /**
     * 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. fileUriToBase64(Uri uri, ContentResolver resolver)
  2. getContentFromProvider( ContentResolver contentResolver, Uri uri, String[] valueTypes)
  3. getExifOrientation(ContentResolver cr, Uri uri)