JAVA读写配置文件(.properties)及注意问题

在编程过程中配置文件读写操作是很常用的一项知识点,在java中也不例外。抛开编程语言的差异不说,对配置文件的操作的基本流程包括以下几个部分:

1.获取配置文件的资源,直白点说就是我们得找到这个配置文件,很容易碰到的一个问题就是文件的路径问题。

2.创建程序中对应配置文件的操作对象,像如java中的Properties,Qt中Qsetting等,然后调用它们相应的方法加载文件资源。

3.获配置信息,一般来说都是通过key去获得value值,对取到的数据进行应用,或修改某些字段值。

4.关闭文件及资源

这篇文章将简单的介绍一下在java开发中如何读写配置文件,以及在实际过程中可能碰到问题,话不多说,先上代码

import java.io.*;
import java.util.Properties;
public class T2 {
    public static void main(String[] args) throws Exception{
        /*配置文件写入*/
        //创建Properties对象
        Properties pro = new Properties();
        //添加字段赋值
        pro.setProperty("jdbc.url", "jdbc:mysql://localhost:3306/spring_data");
        pro.setProperty("jdbc.user", "root");
        pro.setProperty("jdbc.password", "root");
        pro.setProperty("jdbc.driverClass", "com.mysql.jdbc.Driver");
        //保存到文件
        pro.store(new FileOutputStream(T2.class.getClassLoader().getResource("a.properties").getFile()),"");
        pro.storeToXML(new FileOutputStream(T2.class.getClassLoader().getResource("a.xml").getFile()),"");
        /*配置文件读取*/
        //获取配置文件流资源到输入流
        InputStream in = T2.class.getClassLoader().getResourceAsStream("a.properties");
        //创建Properties对象
        Properties pro2 = new Properties();
        //加载配置文件
        pro2.load(in);
        //获取配置信息
        String url = pro2.getProperty("jdbc.url");
        System.out.println(url);
        in.close();
    }
}

在上面的代码分为两部分,

在配置文件的写入中:我们先创建了一个Properties对象,然后调用setProperty()方法写入配置信息,最后调用store()方法将配置信息写入到文件中。

在配置文件的读取中:我们获取到我们刚才写入的配置文件转化为输入流,然后创建了一个新的Properties对象,调用它的load()方法加载配置文件,再然后就是通过getProperty("key")方法获取某个字段的配置信息,取到之后进行了打印,最后关闭了输入流。

代码比较简单,主要有几个问题会碰到

1.配置文件的获取。

这里主要是配置文件的路径问题,在Java中取资源时我们都会用到Class.getResource()ClassLoader.getResource()Class.getResourceAsStream()ClassLoader().getResourceAsStream(),其中的差别可以移步到:

Java获取路径时Class.getResource()和ClassLoader.getResource()区别

作者介绍的比较清除,代码中ClassLoader.getResource()和ClassLoader().getResourceAsStream()再有就是我这里使用的是IDEA,资源文件放置再resources目录下。

2.然后就是获取到的配置信息转化的问题,说白了就是string和其他一些数据类型的转换问题,虽然比较基础,还是记录一下:

1.其他类型转String:       

String s = String.valueOf(value); // 其中 value 为任意一种数字类型

2.字符串型转换成各种数字类型:

String s = "169";

byte b = Byte.parseByte( s );

short t = Short.parseShort( s );

int i = Integer.parseInt( s );

long l = Long.parseLong( s );

Float f = Float.parseFloat( s );

Double d = Double.parseDouble( s );

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值