zoukankan      html  css  js  c++  java
  • Java: InputStream转化为byte数组

    在commons-io包中org.apache.commons.io.IOUtils类的toByteArray(InputStream input)已经有实现了,我们可以参考下思路,完成我们的方法,我们可以用类似下面的代码实现inputStream转化为byte[]数组

    public static byte[] toByteArray(InputStream input) throws IOException {
        ByteArrayOutputStream output = new ByteArrayOutputStream();
        byte[] buffer = new byte[4096];
        int n = 0;
        while (-1 != (n = input.read(buffer))) {
            output.write(buffer, 0, n);
        }
        return output.toByteArray();
    }

    可利用此Api 读取android sdcard上存储的二进制文件内容:

      public static byte[] readBinaryFileContent(Context context, Uri uri) {
            if (context == null || uri == null) return null;
            try {
                InputStream inputStream = context.getContentResolver().openInputStream(uri);
                if (inputStream == null) return null;
                ByteArrayOutputStream baos = new ByteArrayOutputStream();
                byte buff[] = new byte[1024];
                int len = 0;
                while ((len = inputStream.read(buff)) != -1) {
                    baos.write(buff, 0, len);
                }
                baos.flush();
                return baos.toByteArray();
            } catch (Exception e) {
                e.printStackTrace();
            }
            return null;
        }
  • 相关阅读:
    STL_算法_05_集合算法
    STL_算法_04_算术和生成算法
    STL_算法_03_拷贝和替换算法
    STL_算法_02_排序算法
    STL_算法_01_查找算法
    STL_容器使用时机
    STL_容器共通能力
    Qt5_选择文件对话框
    Qt5_当前exe所在路径
    Java 静态代理和动态代理
  • 原文地址:https://www.cnblogs.com/yongdaimi/p/12367746.html
Copyright © 2011-2022 走看看