パッケージcom.jarvis.base.util。 輸入java.io.ByteArrayInputStream。 輸入java.io.ByteArrayOutputStreamを。 輸入java.io.FileInputStream; 輸入java.io.FileOutputStreamは、 インポートにjava.io.IOException; 輸入java.io.InputStreamを。 インポートにjava.io.OutputStream; 輸入net.coobird.thumbnailator.Thumbnails。 輸入sun.misc.BASE64Decoder。 輸入sun.misc.BASE64Encoder。 / ** * * * @Title:ImageHelper.java * @Packageのcom.jarvis.base.util * @description:图片处理工具类 * @versionのV1.0 * / @SuppressWarnings( "制限") パブリッククラスImageHelper { / ** * @描述:Base64で解码并生成图片 imgStr @param:に* @パラメータを * @パラメータに:@param imgfile * @パラメータに:IOExceptionが@throws * @示すパラメータ:ボイド * / ストリングパブリック静的ボイドgenerateImage(imgStr列imgfile)にIOException {スロー ; Base64Decoder新しい新しいBase64Decoder =デコーダ() //のBase64復号 バイト[]バイト; のOutputStream OUT = NULL; 試み{ バイト= decoder.decodeBuffer(imgStr)、 (I 0 = int型のために、I <bytes.length ; I)が++ { (バイト[I]が<0){//異常データを調整すると バイト[I]は+ = 256; } } //画像を生成 OUT =新しい新たFileOutputStream(imgfile); out.write(バイト)。 out.flush(); する} catch(IOExceptionをE){ ;スロー新しい新しいのIOException() }最後に{ !IF(OUT = NULL){ {試します out.close(); }キャッチ(IOExceptionをE){ e.printStackTrace(); } } } } / ** * IOExceptionが@throws * @説明:画像パスコードの後に得られたベース に* @パラメータ:@param imgFilePath * @return:@基準に パラメータを示す@ *:文字列 * / パブリック静的文字列getImageStr(列imgFilePathは)のIOException {//バイト配列のストリング、Base64で符号化処理に画像ファイルを変換してに供スロー = []データをバイトNULL; //読み取るバイト配列画像 試み{ 入力ストリームのFileInputStream(imgFilePath)で=新しい新。 =新しい新しいバイトデータ[in.available()]; in.read(データ); in.close(); }キャッチ(IOExceptionをE){ スロー新しい新規のIOException(); } //バイト配列Base64エンコードの BASE64Encoderエンコーダ= Base64Encoder新しい新しい(); 戻りencoder.encode(データ); //戻りバイト配列Base64でエンコードされた文字列 } / ** *にIOException @throws * @説明:画像回転 に*を@パラメータ:@param base64Inの着信ピクチャBase64で 上院に@ *:@param角度画像回転 上院に対する* @は:例外を@throws * @アウトパラメータ:文字列発信画像のBase64 * / パブリック静的な文字列imgAngleRevolve(文字列base64In、INT角)にIOException {スロー ByteArrayOutputStream OSをByteArrayOutputStream新しい新=(); 試み{ 。Thumbnails.of(base64ToIo(base64In))スケール(1.0).rotate(角度).toOutputStream(OS); }キャッチ(IOExceptionをE){ スロー新しい新規のIOException(); } [] os.toByteArray BS =を(バイト)。 S = Base64Encoder新しい新しいString()(BS)をコードは;. Sを返す; } / ** * @説明:のIOにBASE64ストリーム *の@パラメータに:@param strBase64 *パラメータ@へ:@return *の@パラメータに:@ IOExceptionがスロー * @示すパラメータを:入力ストリーム * / パブリック静的base64ToIo入力ストリーム(文字列strBase64)はIOExceptionが{スロー //復号化した後、バイトのファイルに変換 []バイト=新しいBASE64Decoderを(バイト )decodeBuffer(strBase64); // う。バイト配列に文字列を 新たな新しいAれるByteArrayInputStream(バイト)を返します; } } パッケージcom.jarvis.base.util。 輸入java.io.BufferedReader; 輸入java.io.BufferedWriter。 インポートのjava.io.File; 輸入java.io.FileInputStream; 輸入java.io.FileOutputStreamは、 インポートにjava.io.IOException; 輸入java.io.InputStreamReader。 輸入java.io.OutputStreamWriterが、 輸入はjava.util.List; 輸入java.util.Map; 輸入com.alibaba.fastjson.JSON。 輸入com.alibaba.fastjson.JSONObject。 輸入com.alibaba.fastjson.TypeReference。 輸入com.alibaba.fastjson.serializer.JSONLibDataFormatSerializer。 輸入com.alibaba.fastjson.serializer.SerializeConfig。 輸入com.alibaba.fastjson.serializer.SerializerFeature。 / ** * * * @Title:FastJsonUtil.java * @Packageのcom.jarvis.base.util * @description:fastjson工具类 * @versionのV1.0 * / publicクラスFastJsonUtil { プライベート静的最終SerializeConfigの設定。 静的{ 設定=新しいSerializeConfig()。 config.put(java.util.Date.class、新しいJSONLibDataFormatSerializer()); //使用和JSON-libの兼容的日期输出格式 config.put(java.sql.Date.class、新しいJSONLibDataFormatSerializer() ) ; //互換性のある日付JSON-libと出力形式を使用 } プライベート静的最終SerializerFeature [] = {SerializerFeature.WriteMapNullValueの特徴、//出力空きフィールド フィールドがNULLの場合、出力は[]であり、そしてSerializerFeature.WriteNullListAsEmpty、//リストnullではありません SerializerFeature.WriteNullNumberAsZero、//数値フィールドがヌルである場合、出力はなくヌルで、0であります SerializerFeature.WriteNullBooleanAsFalse、//ブールフィールドはnullの場合、出力はNULLではなく、偽である SerializerFeature.WriteNullStringAsEmpty、文字型フィールド// nullの場合、出力は「」ではないnullである //は、出力をフォーマットする必要がSerializerFeature.PrettyFormat JSONデータ ;} / ** * @paramオブジェクト 列説明:JSONの対象にオブジェクト戻り@return * * / パブリック静的文字列toJSONString(物体オブジェクト){ JSON.toJSONString(オブジェクト、設定、機能)を返します; } / ** * @paramオブジェクト * @Returnリターン:String説明:JSON-libの使用および日付の出力形式と互換性 * / パブリック静的文字列toJSONNoFeatures (Objectオブジェクト){ (オブジェクトは、config)リターンJSON.toJSONString; } / ** * @param jsonStr * @return戻り:説明オブジェクト:JSONにJSONObjectデータを変換する * / JSONObject(文字列jsonStr){toJsonObjパブリックstatic リターン(JSONObject)JSON.parse (jsonStr); } / ** * @param jsonStr * @paramのclazz 戻り@return *:説明T:JSONオブジェクトにデータを変換する * / パブリック静的<T> T toBean(文字列jsonStr、クラス<T> clazz){ JSON.parseObjectリターン(jsonStr、clazz); } / ** * @param jsonStr * @return戻り:オブジェクト[]説明:JSONデータアレイに * / パブリック静的<T> []のtoArray(文字列jsonStr){オブジェクト のtoArray戻り(jsonStrを、NULL); } / ** * @param jsonStr * @paramのclazz * @return戻り:オブジェクト[]説明:将JSON数据转换为数组 * / パブリック静的<T> []のtoArray(文字列jsonStr、クラス<T> clazz)オブジェクト{ 返すJSON.parseArray(jsonStr、clazz).toArray(); } / ** * @param jsonStr * @paramのclazz * @return戻り:リスト<T>説明:将JSON数据转换为リスト * / パブリック静的<T>リスト<T> ToListメソッド(文字列jsonStr、クラス<T> clazz ){ JSON.parseArray(jsonStr、clazz)を返します。 * * @paramキー値 * @return * / パブリック静的JSONObject beanToJsonObj(オブジェクト・ビーン){ 文字列jsonStr = JSON.toJSONString(豆)。 JSONObject objectJson =(JSONObject)JSON.parse(jsonStr)。 objectJsonを返します。 } / ** * JSON字符串转化为マップ * * @param S * @return * / パブリック静的地図<?、?> stringToCollect(文字列jsonStr){ 地図<?、?>マップ= JSONObject.parseObject(jsonStr)。 マップを返します。 } / ** *将マップ转化为列 * * @param m個の *の@return * / パブリック静的文字列collectToString(地図<?、?>マップ){ ストリングjsonStr = JSONObject.toJSONString(マップ) jsonStrを返します。 } / ** * @paramさt *の@paramファイル *にIOException @throws *戻る:void説明:将对象的JSON数据写入文件 * / パブリック静的<T>のボイドwriteJsonToFile(T tの、ファイルのファイル)はIOExceptionが{スロー ストリングjsonStr = JSONObject.toJSONString(T、SerializerFeature.PrettyFormat)。 BufferedWriterの幅BW =新しいBufferedWriterの(新しいのOutputStreamWriter(新規たFileOutputStream(ファイル))); bw.write(jsonStr)。 bw.close(); } / ** * @paramさt * @paramのファイル名 *のIOException @throws *戻る:void説明:将对象的JSON数据写入文件。 * / パブリック静的<T>ボイドwriteJsonToFile(T tは、文字ファイル名は)のIOException {スロー writeJsonToFile(T、新しいファイル(ファイル名))。 } / ** * @paramのCLS * @paramファイル * @return * @throws IOExceptionが *戻り値:T説明:将文件中的JSON数据转换成オブジェクト对象 * / パブリック静的<T> T readJsonFromFile(クラス<T> CLS 、ファイルファイル)IOExceptionが{スロー のStringBuilder strBuilder =新規のStringBuilder(); BufferedReaderのBR =新しいBufferedReaderの(新しいInputStreamReaderの(新しいFileInputStreamを(ファイル)))。 文字列の行= NULL; 一方、(!(ライン= br.readLine())= NULL){ strBuilder.append(ライン) } br.close()。 JSONObject.parseObjectリターン(strBuilder.toString()、CLS); } / ** *著者:ジャック時刻:2017インディアン9 12月2日、午後四時22分30秒 * * @param CLS * @paramファイル名 * @return * @ IOExceptionをスロー 説明T:ObjectオブジェクトにJSONデータファイルを変換する*リターン * / パブリック静的<T> T readJsonFromFile(クラス<T> CLS、文字ファイル名は)にIOExceptionが{スロー readJsonFromFile(CLS、新しい新しいファイル(ファイル名)を返します); } / ** *著者:ジャック時刻:2017インディアン9 12月2日、午後4時23分06秒 * * @paramのtypereference * @paramファイル * @return *は、IOExceptionが@throws *戻り:T説明:从文件中读取出JSON对象 * / パブリック静的<T> T readJsonFromFile(TypeReference <T> typeReference、ファイルファイル)スローにIOException { StringBuilderのstrBuilder =新規のStringBuilder(); BufferedReaderのBR =新しいBufferedReaderの(新しいInputStreamReaderの(新しいFileInputStreamを(ファイル)))。 文字列の行= NULL; 一方、(!(ライン= br.readLine())= NULL){ strBuilder.append(ライン) } br.close()。 JSONObject.parseObject(strBuilder.toString()、typeReference)を返します。 } / ** *著者:ジャック時刻:2017年9月2日下午午前4時23分11秒 * * @param typeReference * @paramファイル名 * @return *は、IOExceptionが@throws *戻る:T説明:从文件中读取出JSON对象 * / パブリック静的<T> T readJsonFromFile(TypeReference <T> typeReference、文字列のファイル名)がスローにIOException { readJsonFromFile(typeReference、新しいファイル(ファイル名を返します) ); } }
オリジナルます。https://blog.csdn.net/zhang150114/article/details/90411800