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字符串編碼,字符串轉換成圖片保存,二進制轉換成圖片保存