java从项目和.jar中的相对路径读取文件

时间:2013-05-09 20:43:03

标签: java file jar relative-path

我试过了:

public class FilePath {

    public File return_path () {

        URL url = getClass().getResource("file.txt"); 
        File file = new File(url.getPath()); 
        return file;
    }
}

如果我打印它,输出是这样的路径:“/ media/dates/%20uni%c3%a0/Java/project%20java%20201/SearchInFiles/build/classes/searchinfiles/hello.txt”< / p>

我已经创建了这个方法,以便每次都不会重新定义最终.jar必须读取的文件的路径。

奇怪的角色可能有问题吗?

当我从主要班级打电话时:

public static void main(String[] args) {

        FilePath path = new FilePath(); 
        File file = path.return_path();
        System.out.println (file);

try{
BufferedReader input = new BufferedReader(new FileReader(file));

            String line;

    int i = 0;
    while ((line = input.readLine ()) != null)
    {
         System.out.println(line);
    }
            input.close();
        } 
        catch(Exception ex){
           System.err.println("Error: " + ex.getMessage());
        }
}

我有“文件不存在”错误。

我该如何解决? 感谢

1 个答案:

答案 0 :(得分:0)

您的网址已被转义,这对于您无法在网址中编写空格的网页浏览器非常有用,并且它们在ascii中表示为“%20”,或十六进制20或字符32。

你想要的是忘记这一点,following post可以帮助你