java - 输入流为空

标签 java inputstream

在我正在做的一个程序中我有

String cwd;
String file_separator;

public ConfigLoader()
{
    cwd = get_cwd();
    file_separator = get_file_separator();

    try
    {
        Properties c = new Properties();

        InputStream in = this.getClass().getClassLoader().getResourceAsStream(cwd + 
            file_separator + "data" + file_separator + "configuration.properties");

        c.load(in);
    }
    except (Exception e) { e.printStackTrace(); }
}

public String get_file_separator()
{
    File f = new File("");
    return f.separator;
}

public String get_cwd()
{
    File cwd = new File("");
    return cwd.getAbsolutePath();
}

但是,出于某种原因,c.load(in); 导致了 NullPointerException。异常来自 in == NULL 为真。我不明白为什么,因为

System.out.println(cwd + file_separator + "data" + file_separator +
    "configuration.properties");

打印

/users/labnet/st10/jjb127/workspace/Brewer-Client/data/configuration.properties

这是我要使用的文件的位置。

想法?

最佳答案

getResourceAsStream 用于搜索类路径中的文件,而不是用于访问本地文件系统。对于这种情况,您将不得不使用 FileInputStream

InputStream in = new FileInputStream(cwd + 
    file_separator + "data" + file_separator + "configuration.properties");

关于java - 输入流为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10008457/

相关文章:

java - 在java中填充未初始化的数组? (或解决方法!)

java - 如何使用 Camel 将大文件发送到ActiveMQ

java - Android InputStream 互联网断开

java - JFreechart 中漂亮的饼图

java - 如何为 json 对象(如 javascript 对象文字)编写 Jackson pojo 类

java - Java中小数点后两位数字的数字格式

java - 无法选中复选框

具有文件名数组的 Java InputData 读/写循环

c++ - 为类中的字符串成员重载运算符>>时出错

java - 如果在grails中知道bean名称,则获取文件名