DATA = [
[false, "aef012.documents", "path", 9, 1], [false, "test.documents", "path", 7, 1],
[false, "test.documents", "path", 182, 2], [false, "test.sw", "path", 1, 3],
[false, "test.rm_git_h1_hw", "path", 1, 4], [false, "test.rm_git_h1_mech", "path", 1, 5],
[false, "test.rm_git_h1_others", "path", 1, 6], [false, "test.rm_git_h_doc", "path", 1, 7]
]
test_data = Marshal.dump(DATA)
#Returns some marshal data
File.open('test.txt', 'w') {|f| f.write(test_data) }
#360
DATA = Marshal.load File.read('test.txt')
# ArgumentError : marshal data too short.
DATA数组有什么问题?为什么我得到参数错误。
任何帮助将不胜感激。
答案 0 :(得分:2)
我认为最好在Windows上使用二进制模式(注意b
):
File.open('test.txt', 'wb') { |f| f.write(test_data) }
DATA = Marshal.load File.open('test.txt', 'rb').read
请参阅:“IO Open Mode”