我正在处理一个涉及读取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"
感谢任何反馈。
答案 0 :(得分:1)
您无法使用URl字符串构造File
。只需将正确的 filename 字符串直接传递给File,
的构造函数,或者确实是FileReader.
的构造函数。文件名中的空格没有问题。
它仍然不允许我使用带空格的文件路径
是的。你错了。
是否转义
文件名不需要转义。 URLS需要转义。但是,您只是通过使用URL类来制造不必要的混乱。