java中读取src文件下属性文件(支持跨服务器)
2011-05-31 08:58
369 查看
import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import java.util.Iterator; import java.util.Properties; import java.util.Set; import java.util.logging.Level; import java.util.logging.Logger; /** * * @author zcb */ public class Test { public static void main(String args[]) { Test test = new Test(); InputStream in = null; Properties props = new Properties(); //第一种方法,取得src下的属性文件,成功 in = test.getClass().getResourceAsStream("/mypropertiestest.properties"); //第二种方法,取得src下的属性文件,相对第一种少了个“/”,注意:error,不行,此时取得的路径是到classes文件夹 // System.out.println("path:"+test.getClass().getResource("mypropertiestest.properties").getPath()); // in = test.getClass().getResourceAsStream("mypropertiestest.properties"); //第三种种方法,通过绝对路径,取得src下的属性文件,成功,但对apusic服务器不大理想,属性文件要拷贝到项目外面 // String filepath = test.getClass().getResource("/").getPath() + java.io.File.separator + "mypropertiestest.properties"; // try { //// filepath = filepath.substring(1).replaceAll("%20", " ");//or filepath = filepath.replaceAll("%20", " "); // filepath = URLDecoder.decode(filepath, "UTF-8"); // } catch (UnsupportedEncodingException ex) { // Logger.getLogger(Test.class.getName()).log(Level.SEVERE, null, ex); // } // try { // in = new FileInputStream(new File(filepath)); // } catch (FileNotFoundException ex) { // Logger.getLogger(Test.class.getName()).log(Level.SEVERE, null, ex); // } try { props.load(in); } catch (IOException e) { e.printStackTrace(); } finally { if (in != null) { try { in.close(); } catch (IOException ex) { Logger.getLogger(Test.class.getName()).log(Level.SEVERE, null, ex); } } } //输出属性文件中的信息 Set set = props.keySet(); Iterator it = set.iterator(); System.out.println("Begin ..."); while (it.hasNext()) { String key = (String) it.next(); System.out.println(key + "=" + props.getProperty(key)); } System.out.println("End"); } }
在windows下测试通过,Linux没测试,需要进一步研究。
补充:使用
ClassLoader.getSystemResourceAsStream("/mypropertiestest.properties")和
Thread.currentThread().getContextClassLoader().getResourceAsStream("/mypropertiestest.properties")
读取src下的属性文件,通过测试,在windows和Linux下的tomcat和apusic都能成功。
相关文章推荐
- java中读取src文件下属性文件(支持跨服务器)
- java读取/写入属性文件
- Java 不能读取appletviewer的属性文件
- 利用java.util.Properties读取属性文件
- Java属性Properties文件读取工具类
- Java读取属性文件
- Java web 项目读取src或者tomcat下class文件夹下的xml文件或者properties文件
- JavaIO——java如何读取jar包自身内部的属性文件
- java 读取属性文件 properties
- JAVA工具类(9)--属性文件properties的读取
- java 读取属性文件
- java读取properties属性文件值方法
- java读取属性配置文件工具类
- java 读取src目录下的配置文件
- Xcode9学习笔记74 - 读取和解析Plist属性列表文件(获取远程服务器信息并显示返回数据)
- java:按行读取服务器压缩文件内容
- Java 读取属性文件Properties,方式2
- 使用java系统属性user.dir读取配置文件
- 编写一个文件,读取 src 下面day12包 下面的my.properties 文件,文件内容如下, className=day12.User 结合 IO、反射知识,完成 配置文件中对象的创建和方法调用。并编写方法,列举出 Student 类中所有的属性、
- java读取properties属性文件