写入文件后,输出文件在哪里?

3
        FileWriter outFile = null;
        try {
            outFile = new FileWriter("member.txt");
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
out.println("test");

运行该命令时,member.txt文件在哪里?我使用的是Windows Vista系统。UAC已启用,因此当我运行它时,我不认为它会写入txt文件。但是txt文件已经被创建了,但是它是空的。
5个回答

6

Java IO中的相对路径是相对于当前工作目录。在Eclipse中,通常是项目根目录。您还将写入out而不是outFile。这里有一个小改写:

    File file = new File("member.txt");
    FileWriter writer = null;
    try {
        writer = new FileWriter(file);
        writer.write("test");
    } catch (IOException e) {
        e.printStackTrace(); // I'd rather declare method with throws IOException and omit this catch.
    } finally {
        if (writer != null) try { writer.close(); } catch (IOException ignore) {}
    }
    System.out.printf("File is located at %s%n", file.getAbsolutePath());

关闭是必须的,因为它会将写入的数据刷新到文件中并释放文件锁。

在Java IO中使用相对路径是不好的做法。如果可以的话,最好使用类路径。例如:ClassLoader#getResource(), getResourceAsStream()等。


4
如果文件成功创建(未引发异常),它将位于当前工作目录中。

2

对于您正在执行的Java类,右键单击该文件,然后转到“运行为 -> 运行配置...”

在此屏幕上,转到“参数”选项卡。在屏幕底部,查找“工作目录”设置。这是您的Java类将从中运行的目录。

在您的示例中,您正在当前目录中创建“member.txt”,因此它将显示在设置为“工作目录”的任何位置中。


0

这取决于您使用的IDE。它通常会放在与file.java文件位于同一目录中的位置。我认为像Eclipse和Netbeans这样的程序可能会将其放在不同的目录中。


0
如果从Eclipse运行,当前工作目录将是您的项目基本目录(查看项目属性以找到磁盘上的位置)。您应该能够通过刷新项目(单击项目并按F5)在项目资源管理器中看到文件。
您可以在“运行配置”对话框的“参数”选项卡下指定替代工作目录。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接