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

如何在电脑上读取和保存来自我的服务器的数据?

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

我想从我的服务器读取并保存这个文件到我的电脑上,但是我应该用同样的方式吗?还是有其他方法?我希望有人能帮助我。

点赞
用户2633423
用户2633423

不完全清楚您想要做什么。如果要将文件从一台计算机复制到另一台计算机,则可以使用以下方法。请注意,它会在将整个文件内容读取到内存中之后再将其复制到目标位置,因此不适用于真正巨大的文件,比如>〜100MB(您的情况可能有所不同)。

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  -- 字节为单位

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()
2013-10-01 18:52:05