尝试写入文件时出现FileNotFound异常

Chr*_*ght 8 java exception file filenotfoundexception

好吧,我觉得这应该很容易,但显然缺少用Java编写文件的基本内容.我有这个:

File someFile = new File("someDirA/someDirB/someDirC/filename.txt");
Run Code Online (Sandbox Code Playgroud)

我只是想写信给文件.但是,虽然someDirA存在,但someDirB(因此someDirC和filename.txt)不存在.这样做:

BufferedWriter writer = new BufferedWriter(new FileWriter(someFile));
Run Code Online (Sandbox Code Playgroud)

抛出一个FileNotFoundException.好吧,呃,不开玩笑.毕竟我正在努力创造它.我是否需要将文件路径分解为组件,创建目录,然后在实例化FileWriter对象之前创建文件?

小智 17

您必须先创建所有前面的目录.而这里是如何做到这一点.您需要创建一个表示您想要存在的路径的File对象,然后在其上调用.mkdirs().然后确保您创建新文件.

final File parent = new File("someDirA/someDirB/someDirC/");
if (!parent.mkdirs())
{
   System.err.println("Could not create parent directories ");
}
final File someFile = new File(parent, "filename.txt");
someFile.createNewFile();
Run Code Online (Sandbox Code Playgroud)

  • createNewFile()是冗余的,但其余的代码工作正常.因此,上升. (2认同)