Java PrintWriter未写入seatingChart.txt文件

Java PrintWriter未写入seatingChart.txt文件,java,netbeans,printwriter,Java,Netbeans,Printwriter,我需要制作一个电影票节目。班上大多数人都是我写的。最后一件事是通过将信息发送到文本文件,用PrintWriter创建一个文本文件 我还没有开始第二部分。现在我只想打印座位表的前两行。这不需要来自类的信息 问题是根本没有向文本文件添加任何内容。这就是我到目前为止所做的: public void createSeatingChart() throws FileNotFoundException { File seatingChart = new File("C:/Users/Chris/D

我需要制作一个电影票节目。班上大多数人都是我写的。最后一件事是通过将信息发送到文本文件,用
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();
}

我很确定我遗漏了一些小东西,但我不确定它是什么。有什么想法吗?

这里有一个简单的解决方案,对我来说没有任何错误

正如PrintWriter类的JavaDoc中声明的:

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

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

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

注意:如果第二个
语句是optionnelle,则可以将其删除
因为如果文件不存在,
PrintWriter
将创建该文件(仅用于 示范目的)


你怎么知道出了什么事?您的问题缺少重要的上下文信息:您看到了哪些错误?什么样的不良行为?你怎么称呼这个?您是否正确地处理了异常?完全没有错误只有我得到的异常是filenotfound,我使用了调试101:在此函数开始时放置断点或
System.out.println
调用,并确保正在调用它。然后单步(或添加更多的
println
s)查看实际发生的情况。任何课程都应该涉及的第一个主题是调试。我认为您的文件路径是错误的。而且,这也是件好事。javadoc记录了要用作此编写器目标的文件。如果文件存在,那么它将被截断为零大小。认真地说,请使用标点符号。你会发现,有时放慢脚步有助于你清晰地表达自己的想法。同花顺电话是完全多余的。只需检查PrintWriter的父级,查看close始终调用flush。请参阅及其答案了解更多信息。对不起,各位,我已修复了在关闭内容时我不确定刷新的错误。好的,但这如何回答OP的问题?它是如何告诉他他的代码是如何工作的?我想现在答案已经足够清楚了,可以理解异常来自何处以及如何修复它
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();


    }