Hello World

吞风吻雨葬落日 欺山赶海踏雪径

0%

java的一些小技巧

java小技巧记录

进制转换

byte转十六进制字符串

1
String.format("%032x",new BigInteger(1,md5.digest()))

https://docs.oracle.com/javase/8/docs/api/java/util/Formatter.html#syntax

Properties.load中文乱码问题

1
2
3
4
5
6
7
8
9
10
11
12
Properties properties = new Properties();
try {
//support chinese
properties.load(new ByteArrayInputStream(data.getBytes()));

//auto inject to varManager
new RelaxedDataBinder(varManager).bind(new MutablePropertyValues(properties));

logger.info( "new " + varManager.toString() );
} catch (IOException e) {
logger.error("set varManager error:",e);
}

发现properties.load后问题是乱码,解决方案(使用InputStreamReader):

1
2
properties.load(new InputStreamReader(
new ByteArrayInputStream(data.getBytes(Constant.UTF8)),Constant.UTF8));