`

java配置文件的读取写入的解决方案(getResourceAsStream的用法)

    博客分类:
  • Java
 
阅读更多

http://cyxinda.blog.51cto.com/6345204/1226010

 

1,首先,Java中的getResourceAsStream有以下几种: 
1. Class.getResourceAsStream(String path) : path 不以’/'开头时默认是从此类所在的包下取资源,以’/'开头则是从ClassPath根下获取。其只是通过path构造一个绝对路径,最终还是由 ClassLoader获取资源。 

2. Class.getClassLoader.getResourceAsStream(String path) :默认则是从ClassPath根下获取,path不能以’/'开头,最终是由ClassLoader获取资源。 

3. ServletContext. getResourceAsStream(String path):默认从WebAPP根目录下取资源,Tomcat下path是否以’/'开头无所谓,当然这和具体的容器实现有关。 

4. Jsp下的application内置对象就是上面的ServletContext的一种实现。 

其次,getResourceAsStream 用法大致有以下几种: 

第一: 要加载的文件和.class文件在同一目录下,例如:com.x.y 下有类me.class ,同时有资源文件myfile.xml 

那么,应该有如下代码: 

me.class.getResourceAsStream("myfile.xml"); 

第二:在me.class目录的子目录下,例如:com.x.y 下有类me.class ,同时在 com.x.y.file 目录下有资源文件myfile.xml 

那么,应该有如下代码: 

me.class.getResourceAsStream("file/myfile.xml"); 

第三:不在me.class目录下,也不在子目录下,例如:com.x.y 下有类me.class ,同时在 com.x.file 目录下有资源文件myfile.xml 

那么,应该有如下代码: 

me.class.getResourceAsStream("/com/x/file/myfile.xml"); 

总结一下,可能只是两种写法 

第一:前面有 “   / ” 

“ / ”代表了工程的根目录,例如工程名叫做myproject,“ / ”代表了myproject 

me.class.getResourceAsStream("/com/x/file/myfile.xml"); 

第二:前面没有 “   / ” 

代表当前类的目录 

me.class.getResourceAsStream("myfile.xml"); 

me.class.getResourceAsStream("file/myfile.xml"); 最后,自己的理解: 
getResourceAsStream读取的文件路径只局限与工程的源文件夹中,包括在工程src根目录下,以及类包里面任何位置,但是如果配置文件路径是在除了源文件夹之外的其他文件夹中时,该方法是用不了的。
配置文件读取:

private static Properties properties = new Properties();
properties.load(getClass().getResourceAsStream(conifgName));
String value = properties.getString(key);
1,首先,Java中的getResourceAsStream有以下几种:

/**
     * 修改某个属性
     * @param key 修改的属性名
     * @param value  修改的属性值
     * @return
     */
    public static String setString(String key, String value) {
        OutputStream fos = null;
        try {
            fos = new FileOutputStream(Object.class.getResource(conifgName).getFile());
            if (value == null || "".equals(value)) {
                return null;
            }
            if (null == instance) {
                getInstance();
            }
            properties.setProperty(key, value);

            // 保存,并加入注释
            properties.store(fos, "Update '" + key + "'111111 value");

            return properties.getProperty(key);
        } catch (Exception e) {
            log.error("set properties error:(key->" + key + ",value->" + value + ")", e);
            e.printStackTrace();
            return null;
        } finally {
            try {
                fos.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }

 

分享到:
评论

相关推荐

    java读取配置文件的实例代码

    java项目读取配置文件的实例代码,使用class.getClassLoader().getResourceAsStream方法。

    java类读取配置文件信息

    在java类里直接读取配置文件中的信息,用到的方法是this.getClass().getClassLoader().getResourceAsStream

    Java中getResourceAsStream用法分析

    主要介绍了Java中getResourceAsStream用法,较为详细的分析了getResourceAsStream的功能及用法,需要的朋友可以参考下

    Java中getResourceAsStream的用法.md

    Java中getResourceAsStream的用法.md

    getResourceAsStream

    java getResourceAsStream种类,分我所知道的3种情况

    java加载属性配置文件(properties文件)——从入门到进阶

    java加载属性配置文件[properties文件]什么是properties文件为什么要使用properties文件使用java加载properties文件的两种方式使用类的加载器获得输入流加载文件getResourceAsStream()介绍使用文件输入流加载文件...

    Java 使用getClass().getResourceAsStream()方法获取资源

    主要介绍了Java 使用getClass().getResourceAsStream()方法获取资源的相关资料,这里主要讲解哪种方式可以获取到文件资源,需要的朋友可以参考下

    使用J2SE API读取Properties文件的六种方法

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

    读取Properties文件的java类

    is = ReadProperties.class.getClassLoader().getResourceAsStream( strFilePath); if (is == null) { WriteLog.writeLog("閰嶇疆鏂囦欢涓嶅瓨鍦紝璇锋鏌ユ枃浠跺悕鎴栬矾寰勬槸鍚︽纭紒"); ...

    java解析给定url

    System.out.println("读取配置文件/config.properties出错"); } } /** * 程序总入口 */ private void start() { for(int i = 0; i (); i++) { URLConnection con = getConnection(configList.get(i)); ...

    java-loadresource.rar

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

    Mybatis源码分析.md

    <!-- TOC --> - Mybatis源码分析 - 1. 解析配置文件,创建SQLSessionFactory - 2. 开启java程序和数据库之间的会话: ...这一步首先读取了mybatis的configuration xml配置文件,用这个流构造了Factory的Builder,它底

    JavaExcel读写库JxlExcel.zip

    JxlExcel 是基于jxl封装的java excel读写库,特性如下:可以像读写文件一样方便的读取数据和写入数据数据支持数组、map、bean三种方式支持xml配置excel模板如何使用?模板定义在类路径下新建一个jxl-excel.xml的模板...

    dom4j.jar.jar

    XML用于保存及交换数据,与读取配置文件的类在同一包,或在WEB-INF(或其子目录下),// 读取配置文件获得一个输入流 InputStream is = Demo1.class.getResourceAsStream("/students.xml");// src目录下 // 1. 获得...

    Jonny023#Study#Java-加载properties文件1

    1、使用class变量的getResourceAsStream()方法 2、使用class.getClassLoader()所得到的java.lang.Clas

    利用Java发送邮件(含附件)的例子

    emailsmtp=smtp.qq.comemailaddress=459104018@qq.comemailpass=******2、读取配置文件的类文件(ReadPropertity.java) import java.io.IOException;import java.util.Properties;public class ReadPropertity { ...

    Java简单音乐播放器播放wav文件示例.rar

    一个挺简单的Java音乐播放器,主要是播放wav格式的音频文件,其它格式暂不支持,代码比较早,确实是比较简单的例子,Java新手参考吧。源代码如下所示:  public MusicDemo() {  textbox=new TextBox("title",...

    DruidJDBCUtils.java

    //静态代码块加载配置文件 static { try { Properties prop = new Properties(); InputStream is = DruidJDBCUtils.class.getClassLoader().getResourceAsStream("druid.properties"); prop.load(is); ...

    Java连接数据库代码

    Java连接数据库代码实现代码, 代码片段: public MyTask(ServletContext context) { this.mContext = context; Properties prop = new Properties(); InputStream in = null; try { in = MyTask.class....

    aspose pdf 10.8.0 for java

    刚开始简单破解了一下。 生成PDF都没问题,后来发现生成... InputStream is = XXX.class.getResourceAsStream("/pdflicense.xml"); license.setLicense(is); is.close(); 其中pdflicense.xml已经包含在jar文件里面

Global site tag (gtag.js) - Google Analytics