java - 写入文件,输出文件在哪里?

标签 java eclipse file-io

        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 文件,但它是空的。

最佳答案

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()等。

关于java - 写入文件,输出文件在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3515745/

相关文章:

java - 使用内置数据结构实现 LRU 缓存

android - 运行 TriggerIO Android ForgeInspector

android - 指向 vimeo 应用程序的链接,但是

java - 检查文件是否已经打开

java - 并行处理量简单队列服务(SQS)

java - 如何根据一个属性对对象数组列表进行排序?

java - 使用反射更改静态最终 File.separatorChar 进行单元测试?

php - 我能否以编程方式强制对文件的更改传播到所有 NFS 客户端?

java - 二十一点极小极大算法

java - 在带有 Netbeans 7.3 的诺基亚 SDK 2.0 中找不到 JRE