在项目中有时候需要读取properties文件,但是读取出来的中文可能是乱码的,那么我们就需要将读取出来的内容进行编码。这里将使用spring的包来解决这个问题。代码如下:
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
import org.springframework.core.io.InputStreamResource;
import org.springframework.core.io.Resource;
import org.springframework.core.io.support.EncodedResource;
import org.springframework.core.io.support.PropertiesLoaderUtils;
public class Test {
public static void main (String[] args) throws IOException {
read();
readByUTF8();
}
private static void read () throws IOException {
Properties properties = new Properties();
InputStream is = Test.class.getResourceAsStream("/test.properties");
properties.load(is);
System.out.println(properties.get("com.zsq.cn"));
}
/**
* 用spring的包读取properties文件避免中文乱码
*/
private static void readByUTF8(){
Properties properties = new Properties();
InputStream is = Test.class.getResourceAsStream("/test.properties");
Resource[] resources = new Resource[]{new InputStreamResource(is)};
try {
for (Resource resource : resources) {
PropertiesLoaderUtils.fillProperties(properties, new EncodedResource(resource, "UTF-8"));
}
} catch (IOException e) {
e.printStackTrace();
}
System.out.println(properties.get("com.zsq.cn"));
}
}