Java Eclipse可以';在bin目录中找不到文件
因此,我试图从Eclipse项目中的配置文件中读取,但它找不到该文件。这是我的密码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
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上?只是为了检查一个愚蠢的路径分隔符问题。