在做游戏开发相关工具时难免会将一些简单的程序配置信息写在配置文件中,由Java读取或者修改,当然很多做WEB开发的同学也会将一些测试IP地址和端口等写入配置文件来达到修改配置而不需修改程序就能测试的目的。实际上这样做的唯一目的就一个:将你的数据模型和程序代码分离!
以下是Java读取.properties的配置文件的代码,记录下来以供后用。
1,新建一个配置文件作为测试使用。
新建properties文件非常简单,windows用户新建一个txt文本文件将后缀改为properties即可。比如我的配置文件名叫“config.properties”,文件内部书写规格为:key = value。实际就是在文件中保存了很多key-value对。
我的配置文件内容如下:
key1 = E:/abc/test.txt
key2 = 中文字符
key3 = 1,2,3,4
2,新建Java程序,代码如下:
public class Test2{
static{//通过静态语句块实现在加载代码时读取配置文件(当然也可以放入main方法中实现)
Properties prop = new Properties();
InputStream in = null;
try {
in = new BufferedInputStream (new FileInputStream("config.properties"));
} catch (FileNotFoundException e1) {
e1.printStackTrace();
}
try {
prop.load(in);
String key1_value = prop.getProperty("key1").trim();//读取key1字段对应的值并去除前后空白
System.out.println(key1_value);
String key2_value = prop.getProperty("key2").trim();//读取key2字段对应的值并去除前后空白
System.out.println(key2_value);//打印出了中文乱码
//解决中文乱码问题
key2_value = new String(key2_value.getBytes("ISO-8859-1"),"gbk");
System.out.println(key2_value);
//继续打印测试
String key3_value = prop.getProperty("key3").trim();//读出字符串1,2,3,4
//将key3_value转为整形数组(只供测试,暂时没有实际用处)
String[] key3_arr = key3_value.split(",");
int[] intArr = new int[key3_arr.length];
for (int i = 0; i < intArr.length; i++) {
intArr[i] = Integer.parseInt(key3_arr[i].trim());
}
//测试打印输出
for (int i = 0; i < intArr.length; i++) {
System.out.print(intArr[i]+",");
}
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
System.out.println("测试运行!");
}
}