file - 使用 r+ 模式打开文件时如何删除文件内容?

标签 file file-io lua file-manipulation

我已使用 r+ 模式打开文件。我对它做了一些修改,我想删除它从 X 开始到文件末尾的内容。

不幸的是我不知道该怎么做。我一直在浏览文档,但没有提到这一点。

我不想将 :space: 写入文件,因此它“看起来”像是已被清除,我也想将其缩小。

在这种情况下,不能选择使用 w 打开文件。

最佳答案

使用r+模式打开文件会保留当前内容;因此,我认为没有办法使用 Lua 中可用的函数来截断文件的其余部分。这个SO answer表示可以使用 reopenw+ 来完成,但由于您表示无法打开它进行写入,我认为没有做你想做的事情

对此脚本进行测试会生成新的 contentext(其中 ext 是早期内容的剩余内容):

local f = io.open("somefile", "w")
f:write("some long text")
f:close()

local f = io.open("somefile", "r+")
f:write("new content")
f:close()

关于file - 使用 r+ 模式打开文件时如何删除文件内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32826099/

相关文章:

c - C 中字符串和整数之间的处理时间

c# - MVC 2 网站 - 无法获取图像文件夹中的文件列表

string - 是否可以更改 Lua 字节码中的字符串(内容和大小)以使其仍然正确?

lua - 如何在corona sdk中使用admob广告?

java - 将文件转换为可访问的对象

c - 你怎么能在C中加倍空间文件?然后打印到标准输出。

linux - 是否可以将目录中的所有文件重命名为 0.jpg、1.jpg、2.jpg 等?

c - 如何从 C 中的目录中检索文件名和子目录名?

php - 从末尾读取大文件

c - 如何使用 SWIG 包装带有可变参数的 C 函数