如何在Java中引用其中包含空格的路径中的文件?

时间:2016-01-02 19:36:31

标签: java io filepath

我正在处理一个涉及读取txt文件的项目,而我目前设置它的方式是......

reader = new BufferedReader(new FileReader(new File(url)));

...其中url是一个String。我没有为用户设置输入他们自己的文件路径(或者我的最终目标是能够在窗口中选择它,但这是另一回事),所以我只是设置了网址像... ...

"file:///C:/Users/Jeremiah/Desktop/generic_text_file.txt"

我的问题是,通过这种技术,我无法在文件路径中包含空格,或者我会得到无效的字符异常,但是计算机上的大多数文件和目录都是人实际交易的其中有空格,甚至包括计算机上的空格,例如"我的文档"。

我还试过通过一个方法传递String来通过添加" \"来逃避空格。在他们面前,但仍然没有工作。

public String escapeSpaces(String string){
    int cursor = 0;
    System.out.println(string);
    while(cursor<string.length()){
        if(string.charAt(cursor)==' '){
            string = string.substring(0,cursor)+"\\"+string.substring(cursor, string.length());
            System.out.println(string);
            cursor++;
        }
        cursor++;
    }
    return string;
}

那么如何解决这个问题以便我可以改为引用一个文件...

"file:///C:/Users/Jeremiah/Desktop/S O M A N Y S P A C E S/generic_text_file.txt"

感谢任何反馈。

1 个答案:

答案 0 :(得分:1)

您无法使用URl字符串构造File。只需将正确的 filename 字符串直接传递给File,的构造函数,或者确实是FileReader.的构造函数。文件名中的空格没有问题。

  

它仍然不允许我使用带空格的文件路径

是的。你错了。

  

是否转义

文件名不需要转义。 URLS需要转义。但是,您只是通过使用URL类来制造不必要的混乱。