我還在學習ruby,所以我敢肯定我在這裏做錯了什麼,但在Windows上使用ruby 1.9.3,我有一個問題,寫一個隨機ascii垃圾文件是一個特定的大小。我需要能夠編寫這些文件在我正在QAing的應用程序上進行測試。在Mac和* nix上,每次都會正確寫入文件大小。但在Windows上,它會生成隨機大小的文件,通常介於1,024字節和1,031字節之間。Ruby文件寫入窗口返回錯誤的文件大小?
我敢肯定,問題是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)
Luis,這真是個訣竅,謝謝! – 2012-07-19 16:51:29