Javaの一般的なツール---イメージ写真処理ツール、JSONツール

パッケージ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

おすすめ

転載: www.cnblogs.com/qbdj/p/10974692.html