package cc.mrbird.febs.pay.util;
|
|
import com.thoughtworks.xstream.XStream;
|
|
import java.io.ByteArrayInputStream;
|
import java.io.ByteArrayOutputStream;
|
import java.io.IOException;
|
import java.io.InputStream;
|
import java.lang.reflect.Field;
|
import java.util.Map;
|
|
/**
|
* User: rizenguo
|
* Date: 2014/10/23
|
* Time: 14:59
|
*/
|
public class Util {
|
|
//打log用
|
|
/**
|
* 通过反射的方式遍历对象的属性和属性值,方便调试
|
*
|
* @param o 要遍历的对象
|
* @throws Exception
|
*/
|
public static void reflect(Object o) throws Exception {
|
Class<? extends Object> cls = o.getClass();
|
Field[] fields = cls.getDeclaredFields();
|
for (int i = 0; i < fields.length; i++) {
|
Field f = fields[i];
|
f.setAccessible(true);
|
Util.log(f.getName() + " -> " + f.get(o));
|
}
|
}
|
|
public static byte[] readInput(InputStream in) throws IOException {
|
ByteArrayOutputStream out = new ByteArrayOutputStream();
|
int len = 0;
|
byte[] buffer = new byte[1024];
|
while ((len = in.read(buffer)) > 0) {
|
out.write(buffer, 0, len);
|
}
|
out.close();
|
in.close();
|
return out.toByteArray();
|
}
|
|
public static String inputStreamToString(InputStream is) throws IOException {
|
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
int i;
|
while ((i = is.read()) != -1) {
|
baos.write(i);
|
}
|
return baos.toString();
|
}
|
|
|
public static InputStream getStringStream(String sInputString) {
|
ByteArrayInputStream tInputStringStream = null;
|
if (sInputString != null && !sInputString.trim().equals("")) {
|
tInputStringStream = new ByteArrayInputStream(sInputString.getBytes());
|
}
|
return tInputStringStream;
|
}
|
|
public static Object getObjectFromXML(String xml, Class<?> tClass) {
|
//将从API返回的XML数据映射到Java对象
|
XStream xStreamForResponseData = new XStream();
|
XStream.setupDefaultSecurity(xStreamForResponseData);
|
xStreamForResponseData.allowTypes(new Class[]{tClass});
|
xStreamForResponseData.alias("xml", tClass);
|
xStreamForResponseData.ignoreUnknownElements();//暂时忽略掉一些新增的字段
|
return xStreamForResponseData.fromXML(xml);
|
}
|
|
public static String getStringFromMap(Map<String, Object> map, String key, String defaultValue) {
|
if (key == "" || key == null) {
|
return defaultValue;
|
}
|
String result = (String) map.get(key);
|
if (result == null) {
|
return defaultValue;
|
} else {
|
return result;
|
}
|
}
|
|
public static int getIntFromMap(Map<String, Object> map, String key) {
|
if (key == "" || key == null) {
|
return 0;
|
}
|
if (map.get(key) == null) {
|
return 0;
|
}
|
return Integer.parseInt((String) map.get(key));
|
}
|
|
/**
|
* 打log接口
|
* @param log 要打印的log字符串
|
* @return 返回log
|
*/
|
public static String log(Object log){
|
System.out.println(log.toString());
|
return log.toString();
|
}
|
|
/**
|
* 读取本地的xml数据,一般用来自测用
|
* @param localPath 本地xml文件路径
|
* @return 读到的xml字符串
|
*/
|
public static String getLocalXMLString(String localPath) throws IOException {
|
return Util.inputStreamToString(Util.class.getResourceAsStream(localPath));
|
}
|
|
}
|