如何在android中将文件转换为base64Binary?

时间:2015-03-13 10:24:45

标签: android

下面的代码是将文件转换为bytearray。

 public static byte[] convertFileToByteArray(File f) {
    byte[] byteArray = null;
    try {
        @SuppressWarnings("resource")
        InputStream inputStream = new FileInputStream(f);
        ByteArrayOutputStream bos = new ByteArrayOutputStream();
        byte[] b = new byte[1024 * 8];
        int bytesRead = 0;

        while ((bytesRead = inputStream.read(b)) != -1) {
            bos.write(b, 0, bytesRead);
        }

        byteArray = bos.toByteArray();
    } catch (IOException e) {
        e.printStackTrace();
    }
    return byteArray;
}

但我需要一个将文件转换为二进制格式的代码。

1 个答案:

答案 0 :(得分:1)

试试这个:

获取字节数组文件:

File file= new File("path file");
byte[] fileByte=convertFileToByteArray(file);

然后转换为字节数组中的base64:

byte[] file_in_base64 = Base64.encode(fileByte, Base64.DEFAULT);

将字节数组转换为二进制数:

String toBinary( byte[] bytes )
{
    StringBuilder sb = new StringBuilder(bytes.length * Byte.SIZE);
    for( int i = 0; i < Byte.SIZE * bytes.length; i++ )
        sb.append((bytes[i / Byte.SIZE] << i % Byte.SIZE & 0x80) == 0 ? '0' : '1');
    return sb.toString();
}