zoukankan      html  css  js  c++  java
  • Properties类对于文件的读取和写入

    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(); } }

    三、 运行结果:

     

  • 相关阅读:
    为什么很多IT公司不喜欢进过培训机构的人呢?
    为何90%的IT技术人员不适合做老大
    一位失足程序员的来信
    你做了哪些事,导致老板下调了对你的评价?
    我的信,你一定要看。
    python 之路,200行Python代码写了个打飞机游戏!
    今天又给即将毕业的学生灌了鸡汤。。。
    收了几个有背景的学生。
    刚收到一个吃瓜群众看了肯定不信的offer!
    关于认识、格局、多维度发展的感触
  • 原文地址:https://www.cnblogs.com/BeenTogether/p/10765095.html
Copyright © 2011-2022 走看看