java 读取src目录下的配置文件

3547人阅读 评论(0) 收藏 举报
分类:

原文转自:http://www.tqcto.com/article/code/295339.html

目前的代码如下:

  1. import java.io.File;  
  2. import java.io.FileInputStream;  
  3. import java.io.FileNotFoundException;  
  4. import java.io.IOException;  
  5. import java.io.InputStream;  
  6. import java.io.UnsupportedEncodingException;  
  7. import java.net.URLDecoder;  
  8. import java.util.Iterator;  
  9. import java.util.Properties;  
  10. import java.util.Set;  
  11. import java.util.logging.Level;  
  12. import java.util.logging.Logger;  
  13.   
  14. /** 
  15.  * 
  16.  * @author zcb 
  17.  */  
  18. public class Test {  
  19.   
  20.     public static void main(String args[]) {  
  21.   
  22.         Test test = new Test();  
  23.         InputStream in = null;  
  24.         Properties props = new Properties();  
  25.         //第一种方法,取得src下的属性文件,成功   
  26.         in = test.getClass().getResourceAsStream("/mypropertiestest.properties");  
  27.   
  28.         //第二种方法,取得src下的属性文件,相对第一种少了个“/”,注意:error,不行,此时取得的路径是到classes文件夹   
  29. //        System.out.println("path:"+test.getClass().getResource("mypropertiestest.properties").getPath());   
  30. //        in = test.getClass().getResourceAsStream("mypropertiestest.properties");   
  31.           
  32.   
  33.         //第三种种方法,通过绝对路径,取得src下的属性文件,成功,但对apusic服务器不大理想,属性文件要拷贝到项目外面   
  34. //        String filepath = test.getClass().getResource("/").getPath()  + java.io.File.separator + "mypropertiestest.properties";   
  35. //        try {   
  36. ////        filepath = filepath.substring(1).replaceAll("%20", " ");//or filepath = filepath.replaceAll("%20", " ");   
  37. //            filepath = URLDecoder.decode(filepath, "UTF-8");   
  38. //        } catch (UnsupportedEncodingException ex) {   
  39. //            Logger.getLogger(Test.class.getName()).log(Level.SEVERE, null, ex);   
  40. //        }   
  41. //        try {   
  42. //            in = new FileInputStream(new File(filepath));   
  43. //        } catch (FileNotFoundException ex) {   
  44. //            Logger.getLogger(Test.class.getName()).log(Level.SEVERE, null, ex);   
  45. //        }   
  46.         try {  
  47.             props.load(in);  
  48.         } catch (IOException e) {  
  49.             e.printStackTrace();  
  50.         } finally {  
  51.             if (in != null) {  
  52.                 try {  
  53.                     in.close();  
  54.                 } catch (IOException ex) {  
  55.                     Logger.getLogger(Test.class.getName()).log(Level.SEVERE, null, ex);  
  56.                 }  
  57.             }  
  58.         }  
  59.   
  60.         //输出属性文件中的信息   
  61.         Set set = props.keySet();  
  62.         Iterator it = set.iterator();  
  63.         System.out.println("Begin ...");  
  64.         while (it.hasNext()) {  
  65.             String key = (String) it.next();  
  66.             System.out.println(key + "=" + props.getProperty(key));  
  67.         }  
  68.         System.out.println("End");  
  69.     }  
  70. }  
Java代码 
  1. import java.io.File;  
  2. import java.io.FileInputStream;  
  3. import java.io.FileNotFoundException;  
  4. import java.io.IOException;  
  5. import java.io.InputStream;  
  6. import java.io.UnsupportedEncodingException;  
  7. import java.net.URLDecoder;  
  8. import java.util.Iterator;  
  9. import java.util.Properties;  
  10. import java.util.Set;  
  11. import java.util.logging.Level;  
  12. import java.util.logging.Logger;  
  13.   
  14. /** 
  15.  * 
  16.  * @author zcb 
  17.  */  
  18. public class Test {  
  19.   
  20.     public static void main(String args[]) {  
  21.   
  22.         Test test = new Test();  
  23.         InputStream in = null;  
  24.         Properties props = new Properties();  
  25.         //第一种方法,取得src下的属性文件,成功  
  26.         in = test.getClass().getResourceAsStream("/mypropertiestest.properties");  
  27.   
  28.         //第二种方法,取得src下的属性文件,相对第一种少了个“/”,注意:error,不行,此时取得的路径是到classes文件夹  
  29. //        System.out.println("path:"+test.getClass().getResource("mypropertiestest.properties").getPath());  
  30. //        in = test.getClass().getResourceAsStream("mypropertiestest.properties");  
  31.           
  32.   
  33.         //第三种种方法,通过绝对路径,取得src下的属性文件,成功,但对apusic服务器不大理想,属性文件要拷贝到项目外面  
  34. //        String filepath = test.getClass().getResource("/").getPath()  + java.io.File.separator + "mypropertiestest.properties";  
  35. //        try {  
  36. ////        filepath = filepath.substring(1).replaceAll("%20", " ");//or filepath = filepath.replaceAll("%20", " ");  
  37. //            filepath = URLDecoder.decode(filepath, "UTF-8");  
  38. //        } catch (UnsupportedEncodingException ex) {  
  39. //            Logger.getLogger(Test.class.getName()).log(Level.SEVERE, null, ex);  
  40. //        }  
  41. //        try {  
  42. //            in = new FileInputStream(new File(filepath));  
  43. //        } catch (FileNotFoundException ex) {  
  44. //            Logger.getLogger(Test.class.getName()).log(Level.SEVERE, null, ex);  
  45. //        }  
  46.         try {  
  47.             props.load(in);  
  48.         } catch (IOException e) {  
  49.             e.printStackTrace();  
  50.         } finally {  
  51.             if (in != null) {  
  52.                 try {  
  53.                     in.close();  
  54.                 } catch (IOException ex) {  
  55.                     Logger.getLogger(Test.class.getName()).log(Level.SEVERE, null, ex);  
  56.                 }  
  57.             }  
  58.         }  
  59.   
  60.         //输出属性文件中的信息  
  61.         Set set = props.keySet();  
  62.         Iterator it = set.iterator();  
  63.         System.out.println("Begin ...");  
  64.         while (it.hasNext()) {  
  65.             String key = (String) it.next();  
  66.             System.out.println(key + "=" + props.getProperty(key));  
  67.         }  
  68.         System.out.println("End");  
  69.     }  
  70. }  

 

 

 

在windows下测试通过,Linux没测试,需要进一步研究。

 

补充:使用ClassLoader.getSystemResourceAsStream("/mypropertiestest.properties")和Thread.currentThread().getContextClassLoader().getResourceAsStream("/mypropertiestest.properties")读取src下的属性文件,通过测试,在windows和Linux下的tomcat和apusic都能成功编程技术

查看评论

java读写src目录下的properties文件

对于properties文件的读写其实也很简单,只是路径不太好找,我查了很长时间才查到的,在这里分享给需要的朋友。 获取src目录下的properties文件的路径用下面这句代码: thi...
  • lee4755026
  • lee4755026
  • 2013-02-06 16:55:07
  • 33908

java 读取src目录下配置文件

1.使用java.util.Properties类 1.1 getResourceAsStream()有时候不一定读的出来Properties prop=new Properties(); Inp...
  • cdsn123jian
  • cdsn123jian
  • 2015-10-15 17:03:49
  • 1659

几种加载Spring的配置文件的方式

package com.liu.test;public class BeanFile { private String beanFile = "多种方式加载Bean的配置文件"; ...
  • daryl715
  • daryl715
  • 2007-02-07 19:45:00
  • 3587

Java加载资源文件的两种方法

Java将配置文件当作一种资源(resource)来处理,并且提供了两个类来读取这些资源,一个是Class类,另一个是ClassLoader类。   当我们自己的程序需要处理配置文件时(比...
  • donson_x64
  • donson_x64
  • 2012-10-26 13:23:19
  • 15288

java获取src路径,也就是拼全路径

String path = System.getProperty("user.dir")+"\\src"; System.out.println(path); //-----------------...
  • u013538390
  • u013538390
  • 2015-06-09 10:29:36
  • 2260

获取项目src下的目录

在我们编写Java的应用程序时,可能会用到一些配置文件,如config.properties,我们可以在配置文件中存储一些重要信息,例如服务器的IP地址,用户名和密码等信息。 在...
  • jinshiyill
  • jinshiyill
  • 2016-04-07 08:56:56
  • 5289

java中获得src路径下文件的常用方法

摘要 java中读取配置文件时常用的方法 在代码中一般读取src下的配置文件 读取src路径下的log4j.properties和message.properties ...
  • sqzhao
  • sqzhao
  • 2014-12-31 11:33:25
  • 4249

Java中文件路径及其访问

首先来看Java中的4种相对路径:
  • T_27080901
  • T_27080901
  • 2014-04-14 20:11:50
  • 7687

Eclipse工程中读取配置文件方式

Properties rb = new Properties(); rb.load(PropertiesUtil.class.getClassLoader().getResourceAsStre...
  • leijianweihai
  • leijianweihai
  • 2014-11-05 13:06:30
  • 290

Java中文件的相对路径与绝对路径

通过这篇博客可以深入理解Java中相对路径与绝对路径的概念,同时对Eclipse和tomcat中的相对路径也做介绍,有助于开发。另外,getPath()、getAbsolutePath()、getCa...
  • u011983531
  • u011983531
  • 2015-09-14 18:47:46
  • 18873
    编程技术学习交流群 :154514123
    微信
    个人资料
    持之以恒
    等级:
    访问量: 65万+
    积分: 8706
    排名: 2807
    最新评论