如何从PC上的服务器读取和保存数据?
a=io.open(path.."/datafile","wb")
a:write("nonsense")
a:close()
是同样的方式还是其他方式? 我想阅读从我的服务器到我的电脑保存这个文件,但我怎么能这样做? 我希望有人可以帮助我
答案 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()