Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Eclipse可以';在bin目录中找不到文件_Java_Eclipse_File Io - Fatal编程技术网

Java Eclipse可以';在bin目录中找不到文件

Java Eclipse可以';在bin目录中找不到文件,java,eclipse,file-io,Java,Eclipse,File Io,因此,我试图从Eclipse项目中的配置文件中读取,但它找不到该文件。这是我的密码 public void readConfigFile () { //URL url = Test.class.getClassLoader().getResource("myfile.txt"); //System.out.println(url.getPath()); URL url = getClass().getResource("/config"); System.ou

因此,我试图从Eclipse项目中的配置文件中读取,但它找不到该文件。这是我的密码

public void readConfigFile () {

    //URL url = Test.class.getClassLoader().getResource("myfile.txt");
    //System.out.println(url.getPath());

    URL url = getClass().getResource("/config");
    System.out.println(url);

    try {
        BufferedReader read = new BufferedReader(new FileReader(url.toString()));

        //read in values for constants from config file
        System.out.println(BASE_URL);
        BASE_URL = read.readLine().split("\t")[1];
        System.out.println(BASE_URL);

        read.close();
    }
    catch (Exception e)
    {
        System.out.println("Read from config file failed. Terminating program");
        System.out.println(e);
        System.exit(1);
    }
}
当我运行时,它将
url
变量打印为:

/Users/myname/Development/workspace/New_API/bin/config

但在运行BufferedReader命令时,它找不到该文件。我得到:

Read from config file failed. Terminating program
java.io.FileNotFoundException:  
file:/Users/myname/Development/workspace/New_API/bin/config.txt (No such file or directory)

然而,当我转到代码的bin目录时,配置文件就在那里。在根bin目录中,遵循URL给定的确切路径。什么事搞砸了

从类加载器获取资源时,您是从类路径获取资源,而不是从文件系统获取资源。如果您的应用程序打包为jar,您将无法通过
文件
文件输入流
API访问资源,因为资源是归档的一部分。相反,您可以访问资源的输入流,如下所示:

URL url = getClass().getResource("/config");

BufferedReader read = new BufferedReader(new InputStreamReader(url.openStream()));
// more...

在绝对位置是否有目录
/Users/myname/Development/workspace/New\u API/bin/config
?我不这么认为,是不是应该是/home/user.name/etcetcha您是否尝试过将文件复制到src文件夹的根目录中?不要使用FileReader,使用
url.openStream()
InputStreamReader
是的,目录存在。我查过了。配置文件从我的src文件夹开始,但在编译时被复制到我的bin文件夹,因为Eclipse以bin作为根运行程序。这是在Mac、PC还是Linux上?只是为了检查一个愚蠢的路径分隔符问题。