当前位置: 代码迷 >> Web前端 >> 关于读取.properties路径空格等有关问题
  详细解决方案

关于读取.properties路径空格等有关问题

热度:133   发布时间:2012-07-28 12:25:13.0
关于读取.properties路径空格等问题
读取Properties文件和路径问题
  如:读取jdbc.properties文件

路径
读取的类位于:package com.query.util;
getClass().getResourceAsStream(jdbc.properties)
      则jdbc.properties描述的路径是相对于这个类所在包的根路径而言的,
   即为相对于文件夹util所在目录开始,
getClass().getResourceAsStream(/jdbc.properties) 以/开始
   则/jdbc.properties描述的路径是相对于这各类当前的文件夹而言的,
   即为相对于文件夹com所在目录开始,

读取的方法
1。使用java.util.Properties类的load()方法
示例: InputStream in = lnew BufferedInputStream(new FileInputStream(name));
       Properties p = new Properties();
       p.load(in);

2。使用java.util.ResourceBundle类的getBundle()方法
示例: ResourceBundle rb = ResourceBundle.getBundle(name, Locale.getDefault());

3。使用java.util.PropertyResourceBundle类的构造函数
示例: InputStream in = new BufferedInputStream(new FileInputStream(name));
       ResourceBundle rb = new PropertyResourceBundle(in);

4。使用class变量的getResourceAsStream()方法
示例: InputStream in = JProperties.class.getResourceAsStream(name);
       Properties p = new Properties();
       p.load(in);

5。使用class.getClassLoader()所得到的java.lang.ClassLoader的getResourceAsStream()方法
示例: InputStream in = JProperties.class.getClassLoader().getResourceAsStream(name);
       Properties p = new Properties();
       p.load(in);

6。使用java.lang.ClassLoader类的getSystemResourceAsStream()静态方法
示例: InputStream in = ClassLoader.getSystemResourceAsStream(name);
       Properties p = new Properties();
       p.load(in);

补充

Servlet中可以使用javax.servlet.ServletContext的getResourceAsStream()方法
示例:InputStream in = context.getResourceAsStream(path);
       Properties p = new Properties();
       p.load(in);

一般常使用第五种

空格

//获得文件路径,并对路径进行处理
private static String getUrl()
{
  String path = configLoad.class.getResource("config.properties").toString();
  path = path.replace("%20", " "); //引号中有一个半角的空格
  path = path.substring(6);
  return path;
}
}
那么这里返回了一个Properties类型的值,在这里就可以使用getProperty()来获得值
如:Properties pro = configLoad.getConfig();
String http = pro.getProperty("url").toString();


中文

  在java jdk  的bin下找到native2ascii.exe 点击输入中文得到asc码
  相关解决方案