File yourFile = new File("score.txt");
yourFile.createNewFile(); // if file already exists will do nothing
FileOutputStream oFile = new FileOutputStream(yourFile, false);
File file = new File("/home/nikhil/somedir/file.txt");
file.getParentFile().mkdirs(); // Will create parent directories if not exists
file.createNewFile();
FileOutputStream s = new FileOutputStream(file,false);
9条答案
按热度按时间vlf7wbxs1#
如果文件不存在并且无法创建(doc),它将抛出一个
FileNotFoundException
,但如果可以,它将创建它。为了确保您可能应该在创建FileOutputStream
之前先测试文件是否存在(如果不存在,则使用createNewFile()
创建):olhwl3o22#
在创建文件之前,必须创建所有父目录。
使用
yourFile.getParentFile().mkdirs()
更新:仅当所有父文件夹不存在时才创建它们。否则不需要。
jqjz2hbq3#
apache commons的FileUtils是在一行代码中实现这一点的一个很好的方法。
如果不存在,则创建父文件夹;如果不存在,则创建文件;如果文件对象是目录或无法写入,则抛出异常。这相当于:
如果不允许当前用户执行上述所有操作,则该操作将引发异常。
cdmah0mi4#
将此
f
传递给FileOutputStream
构造函数。htrmnn0y5#
您可以创建一个空文件,无论它是否存在...
如果您想保留该文件(如果它存在)...
只有当您尝试在不存在的目录中创建文件时,才会收到FileNotFoundException。
编辑:从Java7中你可以创建一个文件,但是当它失败时会得到更有意义的错误消息。
这篇文章有很多变化。https://www.baeldung.com/java-how-to-create-a-file
6jjcrrmo6#
如果文件不存在,则创建文件。如果文件存在,则清除其内容:
cedebl8k7#
只是提供了一个替代方法来创建文件,只有当不存在使用路径和文件.
cigdeys38#
如果该文件不存在,则可能会得到
FileNotFoundException
。Java文档说:
文件是否可用或是否可以创建取决于底层平台http://docs.oracle.com/javase/7/docs/api/java/io/FileOutputStream.html
如果您使用的是Java 7,则可以使用java.nio包:
options参数指定如何创建或打开文件...它打开文件进行写入,如果文件不存在则创建文件...
http://docs.oracle.com/javase/7/docs/api/java/nio/file/Files.html
hivapdat9#
new FileOutputStream(f)
将在大多数情况下创建一个文件,但不幸的是,您将收到FileNotFoundException如果文件存在,但它是一个目录而不是常规文件,不存在但无法创建,或者由于任何其他原因无法打开
来自Javadoc
换句话说,可能有很多情况下,您会得到FileNotFoundException表示“无法创建您的文件”,但您将无法找到文件创建失败的原因。
一个解决方案是删除对文件API的任何调用,并使用文件API,因为它提供了更好的错误处理。通常将任何
new FileOutputStream(f)
替换为Files.newOutputStream(p)
。在你需要使用File API的情况下(例如,因为你使用外部接口File),使用
Files.createFile(p)
是一个很好的方法来确保你的文件被正确创建,如果没有,你会知道为什么它不工作。上面有人评论说这是多余的。这是真的,但你得到更好的错误处理,这在某些情况下可能是必要的。