当前位置: 首页 > 面试题库 >

java:new File(“”,“ name”)!= new File(“ name”)?(带有空字符串的文件构造函数)

璩涵衍
2023-03-14
问题内容

今天注意到这一点。

假定在Java进程(Windows)的PWD中存在一个名为“ existing”的文件。

new File("existing").exists() => true
new File("", "existing").exists() => false
new File(".", "existing").exists() => true

我会从javadoc预期到,依赖于系统的默认目录将是“。”。这些都是真的,所以这出乎意料。

有什么想法吗?

谢谢!

-罗杰-


问题答案:

两个参数的构造函数需要一个父目录名称,因此第二行将查找相对路径为“ / existing”的文件。在linux类型的系统上,“ /”是根(据我所知),因此/
existing非常不可能存在。在Windows上,我不确定默认情况下它将解释什么,但是如果我打开命令行并说cd /Desktop(工作目录是我的用户文件夹),它说它找不到指定的路径。



 类似资料:
  • 问题内容: 我正在查看String API,突然我遇到了一个String空的构造方法,即我们可以使用以下方法构造一个空的String对象: 我不知道有什么用吗? 问题答案: 当然..... 将在堆创建一个非文字串对象 ,这 将是 垃圾收集。 在哪里 将创建一个String Literal 。这 将不会被 垃圾收集过,如果是通过默认加载器访问。 看到下面这个链接,我问了一个问题。这可能与您的问题没有

  • 我正试图向服务器发出post请求,但我得到以下错误。 这是我的控制器。 我尝试将添加到我的字段中,但这似乎并不能解决问题

  • 我看到下面的错误,当我试图读取属性从类路径在我的Spring项目中使用的@属性源注释。我已经粘贴了我的代码下面,请你帮助让我知道我错过了什么?谢谢。 警告:在上下文初始化期间遇到异常-取消刷新尝试:org.springframework.beans.factory.BeanCreation异常:创建名称为“客户仓库”的bean时出错:自动构建依赖项注入失败;嵌套异常java.lang.Illega

  • 具有以下json片段: 这是我的对象映射器配置 附加注意:Pojo类是使用jsonschema2pojo gradle插件生成的,并且基于json模式

  • 我想在JComboBoxe中显示我的名为CodeA(类型为String)的变量中的每个项。我有一条错误消息: 我不明白和之间的转换 编辑:在此处输入图像描述

  • 我最近了解了Java字符串池,有几件事我不太明白。 使用赋值操作符时,如果字符串池中不存在新字符串,则将在字符串池中创建新字符串。 当使用String构造函数时,我明白无论String池的状态如何,都将在堆中、String池之外创建一个新字符串。 我在某处读到过,即使在使用构造函数时,也在使用字符串池。它将把字符串插入到字符串池和堆中。 我没有找到任何关于这方面的进一步信息,但我想知道这是不是真的