有没有办法写一个空文件,但仍然不创建它?

时间:2019-05-23 11:50:02

标签: java file

我使用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();

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

1 个答案:

答案 0 :(得分:1)

文件是文件位置,因此它不会创建文件,而是指向一个文件。

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

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

在tomcatfolder(bin)中的位置是因为那是您当前Java应用程序目录的位置。(您启动了jvm,并且没有更改catalina.bat或.sh,这也是您的工作目录)

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

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