java - 有没有办法写一个空文件但仍然不创建它?
问题描述
我使用 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();
我希望它不在磁盘上创建文件。
解决方案
File 是一个文件位置,所以它不会创建文件,它指向一个文件。
但是,当您创建文件写入器并向其写入内容时(例如在此示例中,带有包装器类缓冲写入器)
然后您将创建一个文件,尤其是在您关闭缓冲写入器的情况下,这会提示它将其缓冲区刷新到文件写入器。该文件编写器是制作文件的原因,因为它需要将一些数据写入名为“hello.txt”的文件中
在您的 tomcatfolder(bin) 中的放置是因为这就是您当前的 java 应用程序目录。(启动您的 jvm,并且不更改 catalina.bat 或 .sh 这也是您的工作目录)
等效的是您将在控制台中触摸文件,您的工作目录是文件指向的位置,除非您指定完整的路径名,否则工作目录将用于放置您的文件。
如果您要在内存中存储“文件”数据,请查看https://stackoverflow.com/a/17595282/11515649
推荐阅读
- php - 从 php 中获取排序结果
- javascript - 使用纯javascript进行分页的点
- reactjs - 发送一个 TextInput 点击按钮而不导航
- python - 从 nd 数组中的 bin 索引中查找封闭网格点的索引
- javascript - 如何按标题对嵌套数组的元素进行分组?
- common-lisp - 在 REPL 中打印 BST?
- php - 无法从表模型中获取名称并使用 laravel 将其显示在视图中
- javascript - JavaScript 性能:大数组的循环和 indexOf
- ruby - Ruby CSV 比较两个 CSV 文件
- java - SwipeRefresh 布局进度条即使在完成后也不会隐藏