Lua - 如何在我的电脑上保存服务器上的数据?

时间:2013-10-01 17:42:53

标签: file-io lua

如何从PC上的服务器读取和保存数据?

 a=io.open(path.."/datafile","wb")
 a:write("nonsense")
 a:close()

是同样的方式还是其他方式? 我想阅读从我的服务器到我的电脑保存这个文件,但我怎么能这样做? 我希望有人可以帮助我

1 个答案:

答案 0 :(得分:1)

目前还不完全清楚你要做什么。如果要将文件从一台计算机复制到另一台计算机,以下是一种方法。请注意,它会在将整个文件内容复制到目标之前将其读入内存,因此它不适合真正庞大的文件,例如> ~100MB(YMMV)。

local SOURCE_PATH = "my/source/path/datafile.txt"
local DESTINATION_PATH = "another/path/datafile.txt"

local fh = assert( io.open( SOURCE_PATH, "rb" ) )
local content = fh:read "*all"
fh:close()

local fh_out = assert( io.open( DESTINATION_PATH, "wb" ) )
fh_out:write( content )
fh_out:close()

编辑

根据@lhf的建议,这是一个可以处理大文件的版本。它读取然后以小块写入文件:

local SOURCE_PATH = "my/source/path/datafile.txt"
local DESTINATION_PATH = "another/path/datafile.txt"
local BUFFER_SIZE = 4096   -- in bytes

local fh = assert( io.open( SOURCE_PATH, "rb" ) )
local fh_out = assert( io.open( DESTINATION_PATH, "wb" ) )

local data = fh:read( BUFFER_SIZE )
while data do
    fh_out:write( data )
    data = fh:read( BUFFER_SIZE )
end

fh:close()
fh_out:close()