• java读取项目或包下面的属性文件方法


    1.使用java.util.Properties类的load()方法

     1 //文件在项目下。不是在包下!!
     2 
     3 InputStream in = new BufferedInputStream(newFileInputStream("demo.properties")) ;  
     4 
     5 Properties p = new Properties();
     6 
     7 p.load(in) ;
     8 
     9 String className2 =p.getProperty("database.driver");
    10 
    11 String url = p.getProperty("database.url");
    12 
    13 String user =p.getProperty("database.user");
    14 
    15 String password =p.getProperty("database.pass");

    2. 使用java.util.Resourcebundle类的getbundle()方法  

    //前面没有“/”代表当前类的目录
    
    示例:  
    
    //文件和类在同一个包下,注意它的文件名和后缀!!是调换的,
    
    ResourceBundle resource =ResourceBundle.getBundle("properties.jdbc");  
    
    
    String className =resource.getString("database.driver");
    
    
    String url =resource.getString("database.url");
    
    
    String user =resource.getString("database.user");
    
    
    String password =resource.getString("database.pass");

    3.使用java.util.PropertyResourceBundle类的构造函数

    // 文件在项目下  或者  src/demo.properties 
    //  在 src/demo.properties  写成 new FileInputStream("src/demo.properties") 
    InputStream in = new BufferedInputStream(new            FileInputStream("demo.properties")); 
    ResourceBundle rb = new  PropertyResourceBundle(in) ;
    String className4 =rb.getString("database.url");

    4.使用class变量的getresourceasstream()方法

    示例:   
    
    InputStream in=Properties.class.getResourceAsStream("/properties/jdbc.properties"); 
    
    // 包点类名下的。
    
    // 如果找不到带有该名称的资源,则返回 null
    
    Properties p = new Properties();
    
    p.load(in);
    
    System.out.println(p.getProperty("database.url")); 
    

    5.使用class.getclassloader()所得到的java.lang.classloader的getresourceasstream()方法   

    // properties 文件 要放在src下面,否则找不到啊
    示例:          
    InputStream in = 类名.class.getClassLoader().getResourceAsStream("jdbc.properties");
    Properties p = new Properties() ;
    p.load(in); 
    System.out.println(p.getProperty("database.pass"));

    6.使用java.lang.classloader类的getsystemresourceasstream()静态方法     

    示例:
    // 同包名下
    InputStream in =ClassLoader.getSystemResourceAsStream("properties/jdbc.properties"); 
    Properties p = new Properties() ;
    p.load(in) ;
    System.out.println(p.getProperty("database.user"));

    总结:如果是 在WEB上读取properties文件,写成下面这种。上面写的那些只在 JavaSE 中

    String path =Thread.currentThread().getContextClassLoader().getResource("").getPath(); 

    System.out.println(path);

    InputStreamin = new FileInputStream(newFile(path+File.separator+"mysql.properties"));

    Properties prop = new Properties();

  • 相关阅读:
    taro clock组件
    创建taro项目
    ts声明各种变量类型
    ts的数组/元组/type/interface
    使用styled-components初始化css
    Oracle profile含义、修改、新增
    JDK bin指令
    Nginx 设置忽略favicon.ico文件的错误日志
    nginx: [error] CreateFile() "D: ginx-1.14.2/logs/nginx.pid" failed 解决办法
    Nginx Windows详细安装部署教程
  • 原文地址:https://www.cnblogs.com/ya-qiang/p/9458786.html
Copyright © 2020-2023  润新知