Java“new File()”不创建文件

问题描述 投票:0回答:2

这将是一个非常愚蠢的问题,但我似乎无法在java中创建一个新文件来拯救我的生命。

它总是抛出

java.io.FileNotFoundException:Users/username/Documents/testProject/test.txt(没有这样的文件或目录)

我已经尝试过这样的:

File newFile = new File("Users/username/Documents/testProject/test.txt");

并尝试了这个:

File newFile = new File("/Users/username/Documents/testProject/test.txt");

我做错了什么?

编辑:显然问题不存在。我稍后在代码中尝试从空文件中读取内容,抱歉各位。

java
2个回答
17
投票

与它的名字可能会让您相信的相反,

new File("...")
不会创建新文件。

它创建一个包含路径名的新对象(在内存中)。

然后您可以对其执行

exists()
canRead()
isDirectory()
等操作,并且可以调用
createNewFile()
使用此路径名在磁盘上创建实际文件。

exists()
应在调用
false
之前返回
createNewFile()
,并且在调用
true
后应返回
createNewFile()
canRead()
也一样。

欢迎来到奇妙的编程世界,在这里,正确命名事物至关重要,但几乎没有人能正确命名。

File
类是 Java 中命名最糟糕的类之一。 它应该被称为
FilePath


1
投票

除了迈克的答案之外,您可能需要放置双//而不是单个/,因为它用作转义序列。我不确定这是否适用于所有情况,但如果您仍然遇到任何错误,请尝试此操作。

© www.soinside.com 2019 - 2024. All rights reserved.