静态方法中的getResourceAsStream

2020/06/23 Java

要以静态方法调用getResourceAsStream ,我们使用ClassName.class而不是getClass()

1.非静态方法

getClass().getClassLoader().getResourceAsStream("config.properties"))

2.静态方式

ClassName.class.class.getClassLoader().getResourceAsStream("config.properties"))

1.非静态方法

项目类路径中的.properties文件。

src/main/resources/config.properties

#config filejson.filepath = /Users/mkyong/Documents/workspace/SnakeCrawler/data/

FileHelper.java

package com.mkyong;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
public class FileHelper {
    public static void main(String[] args) {
        FileHelper obj = new FileHelper();
        System.out.println(obj.getFilePathToSave());
    }
    public String getFilePathToSave() {
        Properties prop = new Properties();
        String result = "";
        try (InputStream inputStream = getClass()
                .getClassLoader().getResourceAsStream("config.properties")) {
            prop.load(inputStream);
            result = prop.getProperty("json.filepath");
        } catch (IOException e) {
            e.printStackTrace();
        }
        return result; 
    }
}

输出量

/Users/mkyong/Documents/workspace/SnakeCrawler/data/

2.静态方法

如果将方法getFilePathToSave()转换为静态方法,则getClass()方法将失败,并提示无法从对象类型对非静态方法getClass()进行静态引用。

要解决此问题getClass()更新为ClassName.class

FileHelper.java

package com.mkyong;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
public class FileHelper { 
    public static void main(String[] args) {
        System.out.println(getFilePathToSaveStatic());
    }
    public static String getFilePathToSaveStatic() {
        Properties prop = new Properties();
        String result = "";
        try (InputStream inputStream = FileHelper.class	
                .getClassLoader().getResourceAsStream("config.properties")) {
            prop.load(inputStream);
            result = prop.getProperty("json.filepath");
        } catch (IOException e) { 
            e.printStackTrace();
        } 
        return result;
    }
}

输出量

/Users/mkyong/Documents/workspace/SnakeCrawler/data/

参考文献

Search

    欢迎关注我的微信公众号

    闷骚的程序员

    Table of Contents