Gson字符串编码,字符串转换成图片保存,二进制转换成图片保存
|
import java.io.BufferedInputStream; import java.io.ByteArrayInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import java.net.URLEncoder; import java.util.ArrayList; import java.util.List; import java.util.Random; import com.google.gson.Gson; /** * 辅助类 * */ public class Common { /** * 字符串编码 * * @param sStr * @param sEnc * @return String */ public final static String UrlEncoder(String sStr, String sEnc) { String sReturnCode = ""; try { sReturnCode = URLEncoder.encode(sStr, sEnc); } catch (UnsupportedEncodingException ex) { } return sReturnCode; } /** * 字符串解码 * * @param sStr * @param sEnc * @return String */ public final static String UrlDecoder(String sStr, String sEnc) { String sReturnCode = ""; try { sReturnCode = URLDecoder.decode(sStr, sEnc); } catch (UnsupportedEncodingException ex) { } return sReturnCode; } /** * 将模型进行JSON编码 * * @param obModel * @return String */ public final static String JSONEncode(Object obModel) { Gson gson = new Gson(); return gson.toJson(obModel); } /** * 将模型进行JSON解码 * * @param sJson * @param classOfT * @return Object */ @SuppressWarnings("unchecked") public final static Object JSONDecode(String sJson, Class classOfT) { Gson gson = new Gson(); return gson.fromJson(sJson, classOfT); } /** * 将模型列表进行JSON解码 * * @param sJson * @return List<Object> */ @SuppressWarnings("unchecked") public final static List<Object> JSONDecodeList(String sJson, Class classOfT) { if (sJson.equals("[]")) { return null; } List<String> lstsfs = dealJsonStr(sJson); List<Object> lst = new ArrayList<Object>(); for (String str : lstsfs) { // 使用JSON作为传输 Object o = JSONDecode(str, classOfT); lst.add(o); } return lst; } /** * 将json列表转换为字符串列表,每个字符串为一个对象 * * @param json * @return List<String> */ public static List<String> dealJsonStr(String json) { String[] sfs = json.split("},"); List<String> lst = new ArrayList<String>(); for (String str : sfs) { str = str.trim(); if (str.startsWith("[")) { str = str.substring(1); } else if (str.startsWith("{")) { } else { str = "{" + str; } if (str.endsWith("]")) { str = str.substring(0, str.length() - 1); } else if (str.endsWith("}")) { } else { str += "}"; } lst.add(str); } return lst; } /** * 将接收的字符串转换成图片保存 * * @param imgStr * 二进制流转换的字符串 * @param imgPath * 图片的保存路径 * @param imgName * 图片的名称 * @return 1:保存正常 0:保存失败 */ public static int saveToImgByStr(String imgStr, String imgPath, String imgName) { int stateInt = 1; try { // System.out.println("===imgStr.length()====>" + imgStr.length() + "=====imgStr=====>" + imgStr); File savedir = new File(imgPath); if (!savedir.exists()) { savedir.mkdirs(); } if (imgStr != null && imgStr.length() > 0) { // 将字符串转换成二进制,用于显示图片 // 将上面生成的图片格式字符串 imgStr,还原成图片显示 byte[] imgByte = hex2byte(imgStr); InputStream in = new ByteArrayInputStream(imgByte); File file = new File(imgPath, imgName);// 可以是任何图片格式.jpg,.png等 FileOutputStream fos = new FileOutputStream(file); byte[] b = new byte[1024]; int nRead = 0; while ((nRead = in.read(b)) != -1) { fos.write(b, 0, nRead); } fos.flush(); fos.close(); in.close(); } } catch (Exception e) { stateInt = 0; e.printStackTrace(); } return stateInt; } /** * 将二进制转换成图片保存 * * @param imgStr * 二进制流转换的字符串 * @param imgPath * 图片的保存路径 * @param imgName * 图片的名称 * @return 1:保存正常 0:保存失败 */ public static int saveToImgByBytes(File imgFile, String imgPath, String imgName) { int stateInt = 1; if (imgFile.length() > 0) { try { File savedir = new File(imgPath); if (!savedir.exists()) { savedir.mkdirs(); } File file = new File(imgPath, imgName);// 可以是任何图片格式.jpg,.png等 FileOutputStream fos = new FileOutputStream(file); FileInputStream fis = new FileInputStream(imgFile); byte[] b = new byte[1024]; int nRead = 0; while ((nRead = fis.read(b)) != -1) { fos.write(b, 0, nRead); } fos.flush(); fos.close(); fis.close(); } catch (Exception e) { stateInt = 0; e.printStackTrace(); } finally { } } return stateInt; } /** * 将图片转换成二进制 * * @param imgPath * @param imgName * @return */ public static byte[] saveToBytesByImg(File file) { byte[] by = null; try { FileInputStream fis = new FileInputStream(file); BufferedInputStream bis = new BufferedInputStream(fis); by = new byte[fis.available()]; bis.read(by); fis.close(); bis.close(); } catch (Exception e) { e.printStackTrace(); } return by; } /** * 将图片转换成字符串 * * @param imgPath * @param imgName * @return */ public static String saveToStrByImg(File file) { String result = ""; try { byte[] by = saveToBytesByImg(file); result = byte2hex(by); } catch (Exception e) { e.printStackTrace(); } return result; } /** * 二进制转字符串 * * @param b * @return */ public static String byte2hex(byte[] b) // 二进制转字符串 { StringBuffer sb = new StringBuffer(); String stmp = ""; for (int n = 0; n < b.length; n++) { stmp = Integer.toHexString(b[n] & 0XFF); if (stmp.length() == 1) { sb.append("0" + stmp); } else { sb.append(stmp); } } return sb.toString(); } /** * 字符串转二进制 * * @param str * 要转换的字符串 * @return 转换后的二进制数组 */ public static byte[] hex2byte(String str) { // 字符串转二进制 if (str == null) return null; str = str.trim(); int len = str.length(); if (len == 0 || len % 2 == 1) return null; byte[] b = new byte[len / 2]; try { for (int i = 0; i < str.length(); i += 2) { b[i / 2] = (byte) Integer.decode("0X" + str.substring(i, i + 2)).intValue(); } return b; } catch (Exception e) { return null; } } public static String getRandomNum(int length) { try { if (length <= 0) { return ""; } Random r = new Random(); StringBuffer result = new StringBuffer(); for (int i = 0; i < length; i++) { result.append(Integer.toString(r.nextInt(10))); } return result.toString(); } catch (Exception ex) { ex.printStackTrace(); return null; } } } |
Gson字符串编码,字符串转换成图片保存,二进制转换成图片保存的更多相关文章
- php从数据库中取二进制流文件转换为图片,图片以二进制流存入数据库实现
php从数据库中取二进制流文件转换为图片,图片以二进制流存入数据库实现 function data_uri($contents, $mime) { $base64 = base64_encode($c ...
- c# 读数据库二进制流到图片
public Bitmap PictureShow(string connectionString, string opName, string productType) { ...
- 图片和base64编码字符串 互相转换,图片和byte数组互相转换
图片和base64编码字符串 互相转换 import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; import java.io.*; ...
- Gson解析json字符串、json数组转换成对象
实体类: public class Product { private int id; private String name; private String date; public int get ...
- SphinxJS——把字符串编码成png图片的超轻量级开源库
体验地址:https://jrainlau.github.io/sp...项目地址:https://github.com/jrainlau/s... SphinxJS 一个能够把字符串编码成png图片 ...
- 生成二维码 加密解密类 TABLE转换成实体、TABLE转换成实体集合(可转换成对象和值类型) COOKIE帮助类 数据类型转换 截取字符串 根据IP获取地点 生成随机字符 UNIX时间转换为DATETIME\DATETIME转换为UNIXTIME 是否包含中文 生成秘钥方式之一 计算某一年 某一周 的起始时间和结束时间
生成二维码 /// <summary>/// 生成二维码/// </summary>public static class QRcodeUtils{private static ...
- c# 图片转二进制/字符串 二进制/字符串反转成图片
protected void Button1_Click(object sender, EventArgs e) { //图片转二进制 byte[] imageByte = GetPictureDat ...
- Qt5字符串编码转换学习
目录 1.通过Python3示例探索常用字符串编码 UTF8 ANSI Unicode 小结 2.Qt5中使用QTextCodec进行编码转换 小结 1.通过Python3示例探索常用字符串编码 下面 ...
- 普通字符串与Hex编码字符串之间转换
import java.io.UnsupportedEncodingException; import org.apache.commons.codec.binary.Hex; public clas ...
随机推荐
- Python 软件安装
安装Python解释器 Python目前已支持所有主流操作系统,在Linux,Unix,Mac系统上自带Python环境,在Windows系统上需要安装一下,超简单 打开官网https://www.p ...
- 从linux进程角度看JVM内存模型
普通进程栈区,在JVM一般仅仅用做线程栈,如下图所示 首先是永久代.永久代本质上是Java程序的代码区和数据区.Java程序中类(class),会被加载到整个区域的不同数据结构中去,包括常量池.域.方 ...
- MySQL数据的优化方案
一.选取最使用的字段属性 mysql可以使用的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快,因此在创建表的时候,为了获得更好的性能,我们可以将表中的字段的宽度尽量设 ...
- 《BUG创造队》第九次团队作业:Beta冲刺与验收准备
项目 内容 这个作业属于哪个课程 2016级软件工程 这个作业的要求在哪里 实验十三 团队作业9:Beta冲刺与团队项目验收 团队名称 BUG创造队 作业学习目标 (1)掌握软件黑盒测试技术:(2)学 ...
- 使用Zookeeper实现负载均衡原理
思路 使用Zookeeper实现负载均衡原理,服务器端将启动的服务注册到,zk注册中心上,采用临时节点.客户端从zk节点上获取最新服务节点信息,本地使用负载均衡算法,随机分配服务器. 创建项目工程 M ...
- [51Nod 1220] - 约数之和 (杜教筛)
题面 令d(n)d(n)d(n)表示nnn的约数之和求 ∑i=1n∑j=1nd(ij)\large\sum_{i=1}^n\sum_{j=1}^nd(ij)i=1∑nj=1∑nd(ij) 题目分析 ...
- robot framework设置更高级别的关键字
robot framework中除了内置的关键字,以及低级别的用户自定义关键字外,为了使用例更加整洁,我们还可以形成更高级别的关键字 方法如下: 在Keywords里面设置 其中Run Success ...
- CLR如何将SEH异常映射到托管异常类型
托管异常处理构建在Windows操作系统的结构化异常处理之上,通常称为SEH.这意味着CLR了解如何在SEH和托管异常系统之间进行互操作,这是一个非常关键的点,因为SEH基于异常代码的概念,而托管异常 ...
- jQuery - 添加元素append/prepend和after/before的区别
append <p> <span class="s1">s1</span> </p> <script> $(" ...
- 洛谷 P2850 [USACO06DEC]虫洞Wormholes 题解
P2850 [USACO06DEC]虫洞Wormholes 题目描述 While exploring his many farms, Farmer John has discovered a numb ...