首页 > 解决方案 > 有没有办法写一个空文件但仍然不创建它?

问题描述

我使用 new File() 在内存中创建一个文件,然后我想在其上写入但不在磁盘中创建文件。

            File file = new File("hello.txt");
            BufferedWriter writer = new BufferedWriter(new FileWriter(file));
            writer.write("This is the text of my file");
            writer.close();

我希望它不在磁盘上创建文件。

标签: javafile

解决方案


File 是一个文件位置,所以它不会创建文件,它指向一个文件。

但是,当您创建文件写入器并向其写入内容时(例如在此示例中,带有包装器类缓冲写入器)

然后您将创建一个文件,尤其是在您关闭缓冲写入器的情况下,这会提示它将其缓冲区刷新到文件写入器。该文件编写器是制作文件的原因,因为它需要将一些数据写入名为“hello.txt”的文件中

在您的 tomcatfolder(bin) 中的放置是因为这就是您当前的 java 应用程序目录。(启动您的 jvm,并且不更改 catalina.bat 或 .sh 这也是您的工作目录)

等效的是您将在控制台中触摸文件,您的工作目录是文件指向的位置,除非您指定完整的路径名,否则工作目录将用于放置您的文件。

如果您要在内存中存储“文件”数据,请查看https://stackoverflow.com/a/17595282/11515649


推荐阅读