打印到文件的更改未保存

时间:2011-10-07 04:03:42

标签: java eclipse

try{


 private fileWriter= new PrintWriter(new FileWriter(file.txt));
                fileWriter.print("hello world");
                System.out.println("file written");

                fileWriter.close();
}
catch (IOException e){
            e.printStackTrace();

        } finally {
        }

我的源文件夹中有这个文本文件。到目前为止,访问它没有任何错误。但是,当我关闭程序或在我打开文本文件时应该写入文件之后我没有在那里找到它们,但是我确实检查了bin文件夹ocne并且它似乎打印了hello world到temp copy那里。

我希望它所做的更改是永久性的。

4 个答案:

答案 0 :(得分:1)

您的代码中存在一些问题。将其更正/简化为以下内容:

public static void main(String[] args) throws IOException {
    PrintWriter fileWriter = new PrintWriter(new FileWriter(new File("file.txt")));
    fileWriter.print("hello world");
    System.out.println("file written");
    fileWriter.close();
}

使其按预期创建文件。尝试一下,如果它没有按照你期望的方式行事,那么解释一下。请注意,当您提供相对文件路径时,它会根据您当前的工作目录解析路径。如果文件是在你没想到的地方写的,这可能就是原因。

答案 1 :(得分:1)

bin文件夹中的文件不是临时文件,而是您实际编写的文件。如果要写入源文件夹中的文件,则在打开文件进行写入时必须使用正确的文件路径。 Java总是计算启动应用程序的文件夹的相对路径。因此,您的应用程序可能在bin文件夹中启动并写入file.txt。

答案 2 :(得分:0)

也许尝试在FileWriter构造函数中使用append boolean

public FileWriter(String fileName,boolean append)

...我认为eclipse会使用bin文件夹作为默认的classpath,所以编写文件就不足为奇了。

我希望有帮助:)

答案 3 :(得分:0)

由于代码很好用于包浏览器 - >项目 - >属性 - > java构建路径 - >来源 - >选中“允许源文件夹输出”的框