一尘不染

如何在Java中使用PrintWriter和File类?

java

我试图了解我正在制作的一个小程序的PrintWriter,而且我似乎无法让Java来制作文件然后在上面写。当我执行下面的程序时,它在第9行显示Filenotfoundexeption错误。它也无法在我指定的目录中创建文件。我对此并不陌生,因此请尝试使答案保持简单。我正在使用Eclipse。

import java.io.PrintWriter;
import java.io.File;

public class Testing {

  public static void main(String[] args) {

    File file = new File ("C:/Users/Me/Desktop/directory/file.txt");
    PrintWriter printWriter = new PrintWriter ("file.txt");
    printWriter.println ("hello");
    printWriter.close ();       
  }
}

阅读 373

收藏
2020-03-19

共1个答案

一尘不染

如果该目录不存在,则需要创建它。Java不会自己创建它,因为File该类只是到一个实体的链接,而该实体也根本不存在。

如你所述,错误是无法创建文件。如果你阅读PrintWriter构造函数的文档,则可以看到

FileNotFoundException-如果给定的字符串不表示现有的可写常规文件,并且无法创建该名称的新常规文件,或者在打开或创建文件时发生其他错误

你应该尝试为其之前包含的文件夹创建路径:

File file = new File("C:/Users/Me/Desktop/directory/file.txt");
file.getParentFile().mkdirs();

PrintWriter printWriter = new PrintWriter(file);
2020-03-19