Base64技术:把对象转变成字符串

需求:在安卓移动端和服务器进行数据交互的时候,有些时候需要上传,下载文件。如果所有的参数都变成字符串,会更加方便。

原理:Base64只是把byte[]数组进行了编码,然后再解码的过程,文档内容无法直接读取。从某些方面来说,进行了“加密”。经过测试一张图片转变成字符串大概会较少1半的大小。

其实我个人觉得不使用Base64 自己通过getByte()和new String() 应该也没问题。编码的格式只要是不会丢失数据的即可。

对于class对象,我们也可以通过ObjectOutputStream和ObjectInputStream来实现。这样都可以转变成字符串的方式进行传输。

下面是一个Demo,如何把一个图片转变成字符串;把字符串转变成图片。

package com.itheima.base64demo_8;

import java.io.ByteArrayOutputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;

import android.os.Bundle;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.Bitmap.CompressFormat;
import android.graphics.BitmapFactory;
import android.graphics.drawable.Drawable;
import android.util.Base64;
import android.view.Menu;
import android.widget.ImageView;

public class MainActivity extends Activity {

    private ImageView    mIv;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mIv = (ImageView) findViewById(R.id.iv);

        // 1.从drawable-hdpi得到一个图片
        Bitmap sourceBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.bbb);

        // 2.转换成byte[]
        ByteArrayOutputStream out = new ByteArrayOutputStream();
        sourceBitmap.compress(CompressFormat.JPEG, 100, out);
        byte[] sourceBitmapByteArr = out.toByteArray();
        // 3.base64-->string
        String bitmapString = Base64.encodeToString(sourceBitmapByteArr, Base64.DEFAULT);
        System.out.println("bitmapString: " + bitmapString);

        // 4.base64-->string-->byte[]
        byte[] bitmapDecodeByteArr = Base64.decode(bitmapString, Base64.DEFAULT);

        // 5.byte[]-->bitmap
        Bitmap bitmap = BitmapFactory.decodeByteArray(bitmapDecodeByteArr, 0, bitmapDecodeByteArr.length);

        // 6.bitmap设置为mIv的src,验证是否可以这样进行传递
        mIv.setImageBitmap(bitmap);

    }

}

整体来说没什么难点。

时间: 2024-10-05 16:06:00

Base64技术:把对象转变成字符串的相关文章

1、AJAX里面status的值代表什么 2、get post 的区别 3、怎样把对象转化成字符串 4、闭包、继承、原型、原型链 5 、http传输协议 6、arguments是什么

1.AJAX里面status的值代表什么     在JavaScript里面写AJax的时,最关键的一步是对XMLHttpRequest对象建立监听,即使用"onreadystatechange"方法.监听的时候,要对XMLHttpRequest对象的请求状态进行判断,通常是判断readyState的值为4且status的值为200或者304时执行我们需要的操作.以下记录了一些常用readState以及status的值及其含义 readyState 属性表示Ajax请求的当前状态.它的

前台 JSON对象转换成字符串 相互转换 的几种方式

在最近的工作中,使用到JSON进行数据的传递,特别是从前端传递到后台,前台可以直接采用ajax的data函数,按json格式传递,后台Request即可,但有的时候,需要传递多个参数,后台使用request进行接收.有时传递了几个数值,还好接收.但是如果传递一个json数组,这样后台接受的时候Request多个很麻烦,此时要按照类的格式或者 集合的形式进行传递.例如下面的例子: 前台按类的格式传递JSON对象: var jsonUserInfo = "{\"TUserName\&quo

JSON对象转换成字符串【JSON2.JS】

下载地址 https://github.com/douglascrockford/JSON-js JSON.JS和JSON2.JS的区别 JSON.JS使用的方法名称不同,用的是toJSONString()和parseJSON() ,使用的时候,和JQUERY的AJAX会产生冲突. JSON2.JS改进了上面的缺点 使用方法 在页面中添加json2.js的引用. <script type="text/javascript" src="/CoreResource/JS/j

json字符串转换成json对象,json对象转换成字符串,值转换成字符串,字符串转成值

主要内容: 一.json相关概念 二.json字符串转换成json对象 (字符串-->JSON对象) 三.json对象转换成字符串(json对象-->字符串) 四.将值转换成字符串(值-->字符串) 五.字符串转成值(字符串-->值) 同步的交流学习社区:http://www.mwcxs.top/page/425.html 一.json相关概念 json,全称为javascript object notation,是一种轻量级的数据交互格式.采用完全独立于语言的文本格式,是一种理想

Javascript里面的时间处理:将时间戳或时间对象转成字符串格式

问题背景:想把一个时间直接转成字符串格式 通过查api发现有个toLocaleString(),根据本地时间格式,把 Date 对象转换为字符串 new Date().toLocaleString(); //"2018/5/31 下午1:43:06" 但是默认是12小时制,会带这种上午下午,所以肯定不需要,继续查,发现可以配置 var ss = new Date().getTime() + 3600000; (new Date(ss).toLocaleString('chinese',

Web开发技术&mdash;&mdash;Javascript对象1(数值,字符串,日期)

JavaScript 中的所有事物都是对象:字符串.数值.数组.函数... 此外,JavaScript 允许自定义对象. JavaScript 对象 JavaScript 提供多个内建对象,比如 String.Date.Array 等等. 对象只是带有属性和方法的特殊数据类型. 访问对象的属性 属性是与对象相关的值. 访问对象属性的语法是: objectName.propertyName 这个例子使用了 String 对象的 length 属性来获得字符串的长度: var message="He

JS中JSON.stringify()方法,将js对象转换成字符串,传入服务器

JSON 通常用于与服务端交换数据. 在向服务器发送数据时一般是字符串. 我们可以使用 JSON.stringify() 方法将 JavaScript 对象转换为字符串. 语法 JSON.stringify(value[, replacer[, space]]) 参数说明: value: 必需, 要转换的 JavaScript 值(通常为对象或数组). replacer: 可选.用于转换结果的函数或数组. 如果 replacer 为函数,则 JSON.stringify 将调用该函数,并传入每个

JavaBean toString() - 将bean对象打印成字符串

JavaBean toString方式 https://www.cnblogs.com/thiaoqueen/p/7086195.html //方法一:自动生成 @Override public String toString() { return "ReportDataQo [eventCode=" + eventCode + ", reportDateFrom=" + reportDateFrom + ", reportDateTo=" +

JavaScript - 问题集 - 含function的json对象与json字符串之间相互转换

基本的转换为:JSON.parse与JSON.stringify. 但是json数据中含function,则转换后,function会丢失,如: var json={ test:'test', login: function(){ alert("login") } } 经JSON.stringify后,login丢失. var json={ test:'test' } JSON.parse,结果一样. 正确处理方法: // json对象转换成字符串 var s=JSON.stringi