当前位置: 移动技术网 > IT编程>开发语言>Java > Properties类对于文件的读取和写入

Properties类对于文件的读取和写入

2019年04月25日  | 移动技术网IT编程  | 我要评论

properties类表示一个持久的属性集。properties可保存在流中或从流中加载。properties对象只能加载以 .properties 为后缀的文件(文件我创建在src下)。

开始时文件中没有内容,我运行的顺序是先写入在进行读取

 

一、properties读取文件内容

  我们要做的第一步就是要将文件读取properties类对象中,由于load 有一个参数是inputstream,所以我们可以用inputstream的子类fileinputstream降属性文件读取到properties对象中,知道db.properties的路径,我们就用fileinputstream(string name)构造函数。

public static void input(){
        
        //创建properties对象
        properties properties = new properties();
        
        //获取输入流对象
        try {
            //方法一:必须给予一个文件的绝对路径
            fileinputstream inputstream = new fileinputstream(new file("d:\\baidunetdiskdownload\\eclipse-jee-kepler-r-win64(1)\\workspace2\\properties\\src\\db.properties"));
            
            //properties加载数据流对象
            properties.load(inputstream);
            
            //获取数据

        system.out.println("username: "+properties.get("username"));
        system.out.println("password: "+properties.get("passwrod"));

        } catch (exception e) {
            // todo auto-generated catch block
            e.printstacktrace();
        }
        //        try {
//            //方法二:使用类加载器可以直接获取类(src)路径下的文件,不必是文件的绝对路径
//            inputstream inputstream = test.class.getclassloader().getresourceasstream("db.properties");
//            properties.load(inputstream);
//            //获取数据
//       system.out.println("username: "+properties.get("username"))

//       system.out.println("password: "+properties.get("passwrod"));
//        } catch (exception e) {
//            // todo auto-generated catch block
//            e.printstacktrace();
//        } 
        
    }

 

二、properties写入文件内容

  最开始写的时候,我只是用properties类进行文件的读取,并没有进行过文件内容的写入,开始时遇到了一个问题(开始时

  properties.setproperty("username", "aaa")这个赋值的操作我是写在流之后的),导致想写入的内容写不进去。最后发现需要将它写在流前面(别问为什么,用法是这样的,哈哈)。
public static void output(){
        
        try {
            properties properties = new properties();
       //如果we年中存在了相同的key,这个操作代表是给这个key赋新的值,如果不存在,代表是写入新的键值对 properties.setproperty("username", "aaa"); properties.setproperty("passwrod", "123456"); fileoutputstream outputstream = new fileoutputstream(new file("d:\\baidunetdiskdownload\\eclipse-jee-kepler-r-win64(1)\\workspace2\\properties\\src\\db.properties")); properties.store(outputstream, null); } catch (exception e) { // todo auto-generated catch block e.printstacktrace(); } }

三、 运行结果:

 

 

 

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网