我有一个大型数组,我想将其保存到文件中。但是当我发出:
File.write Marshal.dump(users),"users.txt"
我明白了:
ArgumentError: string contains null byte
from (pry):201:in `write'
我也得到了与JSON和YAML类似的结果。如何从字符串中删除空字节?我试过String#scrub但没有帮助。
答案 0 :(得分:2)
文件名和内容参数的顺序相反。第一个参数必须是名称,第二个参数必须是内容。引发参数错误是因为file names shouldn't contain null bytes。
由于您正在处理二进制数据,因此您应该使用IO.binwrite
:
File.binwrite "users.txt", Marshal.dump(users)