PrintWriter没有写入seatingChart.txt文件

时间:2017-03-29 00:57:09

标签: java netbeans printwriter

我需要制作电影票务计划。我写了大部分课程。最后要做的是通过将信息发送到文本文件来创建一个PrintWriter的文本文件。

我尚未开始第二部分。现在我只是试图打印座位表的前两行。这不需要来自班级的信息。

问题是根本没有任何内容添加到文本文件中。这就是我到目前为止所做的:

public void createSeatingChart() throws FileNotFoundException 
{
    File seatingChart = new File("C:/Users/Chris/Documents/NetBeansProjects/Auditorium/seatingChart.txt");
    PrintWriter pw = new PrintWriter(seatingChart);

    pw.println("\t\tSeats");
    pw.println("\t123456789012345678901234567890");

    pw.close();
}

我很确定这是一件我想念的小事,但我不确定它是什么。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

这是一个简单的解决方案,为我工作没有任何错误。

正如在PrintDriter类的JavaDoc中声明的那样:

  

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

我认为FileNotFoundException的问题是因为您试图在不存在的目录中创建文件。

所以要解决问题,你必须首先检查你要创建的文件的父目录是否已经存在,如果它不存在你必须先创建它然后你可以尝试使用它写入文件PrintWriter

  

注意:第二个if声明选项栏您可以删除它   因为如果不存在PrintWriter将创建文件(仅适用于   演示目的)。

public void createSeatingChart() throws IOException 
    {

        File seatingChart = new File("C:/Users/Chris/Documents/NetBeansProjects/Auditorium/seatingChart.txt");

        // Check The parent Directory is Exist or Create it.
        if (!seatingChart.getParentFile().exists()) seatingChart.getParentFile().mkdirs();

        // create a new file if not exist 
        if (!seatingChart.exists()) seatingChart.createNewFile();


        PrintWriter pw = new PrintWriter(seatingChart);

        pw.println("\t\tSeats");
        pw.println("\t123456789012345678901234567890");

        pw.close();


    }