文件路径无效,但前提是我用字段构建文件名
Invalid file path, but only if I build the file name with a field
下面给我一个FileNotFoundException: Invalid file path
String fileName = "folder/file" + "." + this.ext;
try {
File file = new File(fileName);
} catch(Exception e){
}
其中 this.ext 之前已设置为 "txt"
经过一番尝试,我发现这完全没问题。
String ext = "txt";
String fileName = "folder/file" + "." + ext;
try {
File file = new File(fileName);
} catch(Exception e){
}
为什么我不能使用字段?
没有理由不能使用字段,即 this.ext
。如果你把调试点放在下面一行,你会发现 this.ext
没有设置为 "txt"
String fileName = "folder/file" + "." + this.ext;
如果您不习惯使用调试器,只需将以下行放在上面这行之前,您就可以找到问题所在:
System.out.println("this.ext="+this.ext);
在调试器中查看后,看起来我的字段的值为“[=16=][=16=][=16=][=16=][=16=]txt”(即 NUL ascii 字符)。
Java 将“\0”视为空字符串,因此我的 println 语句没有向我显示问题。
在大学学习 4 年多来,我一定是第一次需要使用调试器!
下面给我一个FileNotFoundException: Invalid file path
String fileName = "folder/file" + "." + this.ext;
try {
File file = new File(fileName);
} catch(Exception e){
}
其中 this.ext 之前已设置为 "txt"
经过一番尝试,我发现这完全没问题。
String ext = "txt";
String fileName = "folder/file" + "." + ext;
try {
File file = new File(fileName);
} catch(Exception e){
}
为什么我不能使用字段?
没有理由不能使用字段,即 this.ext
。如果你把调试点放在下面一行,你会发现 this.ext
没有设置为 "txt"
String fileName = "folder/file" + "." + this.ext;
如果您不习惯使用调试器,只需将以下行放在上面这行之前,您就可以找到问题所在:
System.out.println("this.ext="+this.ext);
在调试器中查看后,看起来我的字段的值为“[=16=][=16=][=16=][=16=][=16=]txt”(即 NUL ascii 字符)。
Java 将“\0”视为空字符串,因此我的 println 语句没有向我显示问题。
在大学学习 4 年多来,我一定是第一次需要使用调试器!