File Lua文件读写错误
抱歉,如果已经有这样的主题,但我找不到任何与Lua有关的主题。。。所以我在写和读文件时基本上遇到了一些问题,下面是我所做的:File Lua文件读写错误,file,io,lua,File,Io,Lua,抱歉,如果已经有这样的主题,但我找不到任何与Lua有关的主题。。。所以我在写和读文件时基本上遇到了一些问题,下面是我所做的: hp = 25 file = io.open("player.txt","w") if file==nil then io.output("player.txt") io.close() end file:write(hp) file:close() 而且它似乎很好用,很完美。。。但是,当我试图在if语句中添加file:write(hp)时,它不起作用
hp = 25
file = io.open("player.txt","w")
if file==nil then
io.output("player.txt")
io.close()
end
file:write(hp)
file:close()
而且它似乎很好用,很完美。。。但是,当我试图在if语句中添加file:write(hp)时,它不起作用。另外,如果我在file:write(hp)之后添加file:read(“*行”),则player.txt中会这样说:
25b[NUL]ÈñZ[NUL]
file = io.open("player.txt","w")
那么我做错了什么?在记事本++中,[NUL]也是带有白色“NUL”文本的黑色块,但不能在此处复制
编辑:Hmmh,似乎整个代码都搞乱了,它总是重写整个文件;o
Edit2:实际上我不知道我在说什么,现在我对文件控制有了更多的了解,下面是我应该做的或我尝试做的:
function existsFile(path)
x = io.open(path)
if x == nil then
io.close()
return false
else
x:close()
return true
end
end
if not existsFile("player.txt") then
file = io.open("player.txt", "w")
file:write(25)
hp = 25
file:close()
else
file = io.open("player.txt", "r")
hp = file:read("*number")
file:close()
end
我知道它看起来和我第一次发布的代码不一样,但这就是我的基本意思。你能解释一下你在这段代码中想做什么吗? 为什么需要检查文件是否为零?当您打开文件进行写入时,lua会自动创建它(如果不存在)。 “w”模式意味着您正在擦除文件中的所有数据并写入新数据
可能你需要“a”模式?在这种模式下,会在文件末尾添加新行。您能解释一下您在这段代码中要做什么吗? 为什么需要检查文件是否为零?当您打开文件进行写入时,lua会自动创建它(如果不存在)。 “w”模式意味着您正在擦除文件中的所有数据并写入新数据
可能你需要“a”模式?在这种模式下,会在文件的末尾添加新行。听起来您对上的标志感到困惑。检查手册,确保您真正想要的是
w
标志,因为它会覆盖所有内容
试着做一个
文件:当你在中时写,如果不应该工作,我不知道为什么你会期望它工作,因为文件是零。您的意思是,如果文件无法打开,请尝试将其写入文件,这对我来说毫无意义。听起来您对上的标志感到困惑。检查手册,确保您真正想要的是w
标志,因为它会覆盖所有内容
试着做一个文件:当你在中时写,如果不应该工作,我不知道为什么你会期望它工作,因为文件是零。您的意思是,如果文件无法打开,请尝试将其写入文件,这对我来说没有意义。如果“if”块检查“file”是否为nil,那么代码块将永远不会运行
read()无法工作,因为您以“w”(写入)模式打开了文件
擦除整个文件是写入模式的预期行为。在该模式下,首先删除文件,然后向其写入新数据。如果“if”块检查“file”是否为nil,则代码块将永远不会运行
read()无法工作,因为您以“w”(写入)模式打开了文件
擦除整个文件是写入模式的预期行为。在该模式下,文件首先被擦除,然后向其中写入新数据。nil
在io.open上是一种错误情况。从权限问题到文件描述符用尽,再到磁盘错误,io.open上的nil
都是错误条件。从权限问题到文件描述符用尽,再到磁盘错误,都有。谢谢,我在第一篇文章中编辑了正确的代码,根据我提供的信息无法回答。如果存在文件,则您编辑的代码具有。当文件不存在时读取文件,当文件存在时写入文件。另外,我认为您不需要io.close()
,因为当您无法打开该文件时。谢谢,我在第一篇文章中编辑了正确的代码,根据我提供的信息无法回答。您编辑的代码具有if existsFile
场景。当文件不存在时读取文件,当文件存在时写入文件。此外,我认为您不需要io.close()
,因为您无法打开文件。