JAVA实现内存对象和字符串的互转(非BASE64和json)
在很多地方,我们仍然需要纯字符串来进行数据的保存和传递、例如cookie、radis缓存等、这时如何将对象保存为对应的字符串形式就迫切需要了。有人可能会说用json就可以了,但我如果要存张图片呢?
思路如下
- 获得内存对象的字节数组
- 将其重组为ISO-8859-1标准字符集的字符数组,刚好都是一一对应的
- 这个字符串想保存在哪里都可以,文件、缓存等。
- 使用时需将字符串读入
- 再将字符串转成字节数组
- 再将字节数组还原为对象
开撕代码,注释比较明确,自己看吧。已经实现了对象(需实现序列化接口)和字符串互转、图像和字符串互转。
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;
/**
* @author TeacherXue
* @date 2018年5月17日 下午5:13:01
* @file com.issCollege.shop.entity ObjToStr.java
* @version V1.0
*/
public class ObjToStr {
/**
* 测试用主方法
* @param args
*/
public static void main(String[] args) {
List<String> ls=new ArrayList<String>();