【问题标题】:Creating an empty file in a directory在目录中创建一个空文件
【发布时间】:2026-01-10 14:55:01
【问题描述】:

我是一名新的 Java 学生,目前正在研究文件 I/O。我的教授要求我们使用接口和类创建一个非常简单的“DC 宇宙”游戏,并要求我们在我正在研究的当前实验室中创建一个对象的实例,然后将文件保存到我们的 C 目录中驾驶。我的问题是,即使在我不断研究过去的主题 2 个小时之后,我仍然找不到关于如何创建目录然后创建文件并写入该目录中的文件的正确解释,因为它会在我运行时出现我的代码不能同时完成这两项任务。下面的代码还在“Print Writer”行包含一个错误,并要求为“file not found exception”添加一个 throw 子句

非常感谢任何和所有帮助

package runtime;

import java.io.*;
import java.util.*;  
import model.hero.*;

public class Gameplay {

public static void main(String[] args) {

    File x = new File("C://prog24178//dcheroes.dat"); 

        if(!x.exists()){
            x.mkdir(); 
        }

    PrintWriter output = new PrintWriter(x); 
    // 1. Create a save file called dcheroes.dat in {$root}\prog24178
    // 2. Create a hero
    // 3. Save hero to file

}

}

【问题讨论】:

  • 您可能想写成 \\ 而不是 //。否则可能会发生不好的事情:D

标签: java file object input output


【解决方案1】:

我看到了两个错误:

  • x.mkdir() 将尝试将C:\prog24178\dcheroes.dat 创建为目录。使用x.getParent().mkdir() 创建C:\prog24178

  • PrintWriter 错误是 Java 抱怨您没有捕获 潜在 错误。您的代码很好,只是 Java 要求很高。用try { ... } catch (FileNotFoundException ex) { ... } 块包围您的代码。每个可能潜在引发Exception 的函数调用都需要捕获该异常,或者需要将包含函数标记为也是异常的潜在来源(您不能在main 上执行后者)。

【讨论】: