【发布时间】:2016-01-02 19:36:31
【问题描述】:
我正在从事一个涉及读取 txt 文件的项目,而我目前的设置方式是...
reader = new BufferedReader(new FileReader(new File(url)));
...其中 url 是一个字符串。我没有为用户设置它来输入他们自己的文件路径(或者我的最终目标是能够在窗口中选择它,但这是另一回事),所以我只是将 url 设置为类似.. .
"file:///C:/Users/Jeremiah/Desktop/generic_text_file.txt"
我的问题是,使用这种技术,我不能在文件路径中包含空格,否则我会得到一个无效字符异常,但是一个人实际处理的计算机上的大多数文件和目录都有空格它,甚至是像“我的文档”一样出现在计算机上的那些。
我还尝试通过在字符串前面添加“\”来转义空格的方法传递字符串,但这仍然不起作用。
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"
感谢任何反馈。
【问题讨论】:
-
如果你知道它是一个文件,为什么还要通过 URL 路由而不是直接使用它?
-
@OliverCharlesworth 在这种情况下,小舞仍然没有意义。
-
仅供参考,您也可以将字符串传递给
FileReader构造函数。不知道这是否有帮助,但我想我记得使用带空格的文件名,而且效果很好。 -
@Hassan 在我从 url 字符串中删除“file://”后它起作用了。谢谢!
-
推荐:请don't use the
Fileclass anymore。它已过时且信息不足。请改用Files类。