借助一个外部文件,为玩家独立保存跨存档数据,以实现多周目继承或记住游戏基础设置一类的功能。
创建一个文件,
file = "test.txt"
f = File.open(file, "a")
f.write("123\n\n")
f.close
传递给File.open的参数有两个,其中第一个参数file决定了这个新文件的路径和文件名,也可以写成例如file = "System/test.txt"但前提是System文件夹已经存在 ,而第二个参数"a"处可以改成“w”,决定写入方式,区别在于,假如该文件名的文件已经存在,是用接下来的内容覆盖写入该文件,还是把接下来的内容追加到该文件的尾部。
传递给write的参数就是要写入文件的内容了,字符串中可以使用\n、\t等转义符号。
读取一个文件,
text = File.open("System/test.txt","r").read
同样第一个参数是路径和文件名,第二个参数是决定读取的方式。
如果您希望读取出来的数据是一个纯数字,那么可以紧随其后执行text = text.to_i
更为复杂的需求需要保存多个数据、难以被直接用记事本修改的文件,则需要用到字符串的split方法和Marshal读写,下面暂时只提供基本写法,如有需要会再补充细节说明。
部分电脑在VA上进行文件的读写操作时,可能需要传入第三个参数,即在文件名、读写方式之后,再写入一个"0700",
f = File.open("test.txt", "a", 0700)
f.write("123\n\n")
f.close
file = File.open(text.txt ,"r", 0700).read
text = text.split(/,/)
for i in text
print i
end
file = File.open(DATA_FILENAME ,"wb", 0700) do |f|
Marshal.dump(data, f)
end
File.open(DATA_FILENAME, "rb", 0700) do |f|
data = Marshal.load(f)
end