我需要制作电影票务计划。我写了大部分课程。最后要做的是通过将信息发送到文本文件来创建一个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();
}
我很确定这是一件我想念的小事,但我不确定它是什么。有什么想法吗?
答案 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();
}