我还在学习 ruby,所以我确定我在这里做错了,但是在 Windows 上使用 ruby 1.9.3,我在将随机 ascii 垃圾的文件写入特定大小时遇到问题。我需要能够编写这些文件以在我正在 QAing 的应用程序上进行测试。在 Mac 和 *nix 上,每次都正确写入文件大小。但在 Windows 上,它会生成随机大小的文件,一般在 1,024 字节到 1,031 字节之间。
我确定问题是 rstr 生成的字符之一被计为两个字符,但是......这似乎不应该发生。
这是我的代码:
num = 10
k = 1
for i in 1..num
fname = "f#{i}.txt"
f = File.new(fname, "w")
for k in 1..size
rstr = "#{(1..1024).map{rand(255).chr}.join}"
f.write rstr
print " #{rstr.size} " # this returns 1024 every time.
rstr = ""
end
f.close
end
也试过:
opts = {}
opts[:encoding] = "UTF-8"
fname = "f#{i}.txt"
f = File.new(fname, "w", opts)