[英]Ruby - Delete the last character in a file?
truncate(file_name,integer)→0
将文件
file_name
截断为最多integer
字节长。 并非适用于所有平台。
所以你可以这样说:
File.truncate(file_name, File.size(file_name) - 1)
这应该通过单个系统调用截断文件,以调整文件系统中的文件大小而不复制任何内容。
请注意, 并非在所有平台上都可用 。 File.truncate
应该可用于任何unixy(例如Linux或OSX),我不能说任何有用的Windows支持。
我假设你指的是一个文本文件。 通常的改变方法是读取它,进行更改,然后编写一个新文件:
text = File.read(in_fname)
File.write(out_fname, text[0..-2])
为in_fname
插入要读取的文件的名称,并为“out_fname”插入要写入的文件的名称。 它们可以是同一个文件,但如果这是写入临时文件更安全,则将临时文件复制到原始文件,然后删除临时文件。 这样,如果在操作完成之前出现问题,您可能仍会拥有原始文件或临时文件。 text[0..-2]
是一个由除最后一个字符之外的所有字符组成的字符串。 你也可以这样做:
File.write(out_fname, File.read(in_fname, File.stat(in_fname).size-1))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.