我知道在技术上附加文件名周围的空白是一个错误,但我想知道为什么以下代码在Windows上返回true,但在Linux上返回false:
public static void main(String[] args) {
File file = new File("some_file_that_exists "); // note the whitespace at the end
System.out.println(file.exists());
}
我使用Windows 7 64位和jdk1.6.0_31,并在Linux 2.6.18上使用jdk1.6.0_06重试。请注意,该文件的名称末尾没有空格。
答案 0 :(得分:1)
这应该是因为windows不允许空间结束,并且当java调用OS时,OS会删除/不考虑空格。
然而,linux允许空间结束,因此它会进行精确检查并尝试在文件名末尾找到带空格的文件。