如何将文件流转换成byte[]数组

目录
  • 将文件流转换成byte[]数组
  • 将文件转为byte[],通过ByteArrayOutputStream实现
    • 通过文件路径转换byte[]
    • 将bitmap对象

将文件流转换成byte[]数组

InputStream is = new FileInputStream(new File("D://a.txt"));
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
byte[] bytes = new byte[1024];
int temp;
while ((temp = is.read(bytes)) != -1) {
     outputStream.write(bytes, 0, temp);
}
//转换后的byte[]
byte[] finalBytes = outputStream.toByteArray();

将文件转为byte[],通过ByteArrayOutputStream实现

通过文件路径转换byte[]

通过ByteArrayOutputStream实现

/**
     * 将文件转为byte[]
     * @param filePath 文件路径
     * @return
     */
    public static byte[] getBytes(String filePath){
        File file = new File(filePath);
        ByteArrayOutputStream out = null;
        try {
            FileInputStream in = new FileInputStream(file);
            out = new ByteArrayOutputStream();
            byte[] b = new byte[1024];
            int i = 0;
            while ((i = in.read(b)) != -1) {
            out.write(b, 0, b.length);
            }
            out.close();
            in.close();
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        byte[] s = out.toByteArray();
        return s;
    }

将bitmap对象

转为byte[] 并进行Base64压缩

/**
     * bitmap转为base64
     *
     * @param bitmap
     * @return
     */
    public static String bitmapToBase64(Bitmap bitmap) {
        String result = null;
        ByteArrayOutputStream baos = null;
        try {
            if (bitmap != null) {
                baos = new ByteArrayOutputStream();
                bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
                baos.flush();
                baos.close();
                byte[] bitmapBytes = baos.toByteArray();
                result = Base64.encodeToString(bitmapBytes, Base64.DEFAULT);
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if (baos != null) {
                    baos.flush();
                    baos.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return result;
    }

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 全面了解java byte数组与文件读写

    全面了解java byte数组与文件读写 import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; public class FileHelper { <span style="white-space:pre"> </span

  • Java 将文件转为字节数组知识总结及实例详解

    Java将文件转为字节数组 关键字:文件,文件流,字节流,字节数组,二进制 摘要:最近工作中碰到的需求是,利用http传输二进制数据到服务器对应接口,需要传输userId, file(加密后)等一系列混合后的二进制数据.本文旨在记录自己在使用Java将文件转为字节数组的一些知识理解与汇总. FileInputStream 利用FileInputStream读取文件 FileInputStream是InputStream的子类,用于从文件中读取信息,构造器接收一个File类型或表示文件路径的Str

  • java对象转成byte数组的3种方法

    java对象转成byte数组,在使用netty进行通信协议传输的场景中是非常常见的.比如,协议有一些定好的协议头.classid,messageid等等信息,还有一个关键的内容是payload.不同的协议内容都会放到payload中,而这个payload往往就是一个byte数组. 那么,如何方便的将一个java对象构造成一个byte数组呢? 1 bytebuf填充 我们以下面这个对象举例: public class UgvData implements Serializible{ private

  • 读取Java文件到byte数组的三种方法(总结)

    读取Java文件到byte数组的三种方法(总结) package zs; import java.io.BufferedInputStream; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.Rando

  • 如何将文件流转换成byte[]数组

    目录 将文件流转换成byte[]数组 将文件转为byte[],通过ByteArrayOutputStream实现 通过文件路径转换byte[] 将bitmap对象 将文件流转换成byte[]数组 InputStream is = new FileInputStream(new File("D://a.txt")); ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); byte[] bytes = new b

  • C#实现字符串转换成字节数组的简单实现方法

    本文实例讲述了C#实现字符串转换成字节数组的简单实现方法.分享给大家供大家参考.具体实现方法如下: using System.Text; public static byte[] ConvertStringToByteArray(string stringToConvert) { return (new UnicodeEncoding()).GetBytes(stringToConvert); } 希望本文所述对大家的C#程序设计有所帮助.

  • C#将数字转换成字节数组的方法

    本文实例讲述了C#将数字转换成字节数组的方法.分享给大家供大家参考.具体实现方法如下: 下面的代码用到了MemoryStream 和 BinaryWriter // Create a byte array from a decimal public static byte[] DecimalToByteArray (decimal src) { // Create a MemoryStream as a buffer to hold the binary data using (MemorySt

  • Java List转换成String数组几种实现方式详解

    Java List转换成String数组 实现代码: List<String> list = new ArrayList<String>(); list.add("a1"); list.add("a2"); String[] toBeStored = list.toArray(new String[list.size()]); for(String s : toBeStored) { System.out.println(s); } 或 Li

  • PHP实现二维数组(或多维数组)转换成一维数组的常见方法总结

    本文实例总结了PHP实现二维数组(或多维数组)转换成一维数组的常见方法.分享给大家供大家参考,具体如下: 假设有下面一个二维数组: $user = array( '0' => array('id' => 100, 'username' => 'a1'), '1' => array('id' => 101, 'username' => 'a2'), '2' => array('id' => 102, 'username' => 'a3'), '3' =&

  • idea 普通文件夹 转换成 module操作

    经常会遇到从GitHub上download的progect在idea里面打开是普通文件夹形式,而并不是我们想要的module形式(文件夹图标右下角有个蓝色的tag),那么如何快速转换成我们想要的module形式呢? 1.右击project,选择第二项"add framework support",然后从对话框左侧选择"Maven",OK即可 2.设置maven仓库地址:右击file,选择settings,找到maven,设置maven home directory以

  • 对象无length属性时IE6/IE7中无法将其转换成伪数组(ArrayLike)

    有时需要将数组转成伪数组(ArrayLike),如下 复制代码 代码如下: var ary = ['one','two','three']; var obj = {}; // 没有length属性 Array.prototype.push.apply(obj, ary); for(var i in obj){ alert(i + ': ' + obj[i]); } IE8/9/Firefox/Safari/Chrome 依次弹出了obj的key及其value.即能转换成ArrayLike. 但I

  • PHP中把对象数组转换成普通数组的方法

    最近在用ThinkPHP开发一个京东服务市场的应用,然而京东服务市场接口返回的数据是个对象数组.然而需要一个个属性取出来放到数组里面然后再利用ThinkPHP的addAll或者add方法写入数据库.然而每次返回的字段有几十个,每次这么拼接都要崩溃了.果然还是那句话,当你感到无法忍受的时候你就会想办法改变.于是想了下,如果有个函数传个对象数组进去可以自动转成普通数组就好了.因而万能的互联网搜索又来了.百度了一通...果然有前辈已经处理过了,在此记录一下. 复制代码 代码如下: /** * [std

  • Python txt文件如何转换成字典

    处理前文件内容 代码 处理后的 # 读取代码 fr = open('three.txt', 'r') dic = {} keys = [] # 用来存储读取的顺序 for line in fr: v = line.strip().split(':') dic[v[0]] = v[1] keys.append(v[0]) fr.close() print(dic) # # 写入文件代码 通过keys的顺序写入 # fw = open('wdic.txt', 'w') # for k in keys

随机推荐