2015-04-01 31 views
2

需要编写一些文件,然后打开它读取和写入一行到另一个文件 - 所有这一切都在一个脚本中。 我的问题是,我:Lua需要读取我刚才在同一个程序中写入的文件

  1. 打开文件1在读取模式(文件1 = io.open( “my_file.txt”, “R”))

  2. 写模式打开文件2(文件2 = io.open( “my_changed_file.txt”, “W”))

  3. 写从文件1的改变的内容到file2

  4. 打开文件2(也尝试作为file3的= io.open打开(“my_changed_file .txt“,”r“)),并从中打印一些行,例如

我试了几种方法,如文件2:冲水(),或文件2:关闭(),并重新打开后,我写完了,但它总是返回nil,当我想打印一些行

file1=io.open("my_file.txt","r") 
file2=io.open("my_changed_file.txt","w") 

for line in file1:lines() do 
    file2:write(line.."changes") 
end 

file2:flush() 
file3=io.open("my_changed_file.txt","r") 
--write several lines to another file or something 
--(need to combine changed lanes from file2 and original lines from file1 based on my key) 

回答

3

我已经尝试过您的脚本,只需对Lua 5.1,5.2和5.3进行较小的更改,并且它可以在所有这些版本中按预期工作。我的脚本如下,并有一个变化,可能是重要的:write不增加新的行print做,所以你可能需要将它自己添加,如果你想输出为不同的路线:

local file1=io.open("my_file.txt","r") 
local file2=io.open("my_changed_file.txt","w") 
for line in file1:lines() do 
    file2:write(line.."changes\n") 
end 
file2:close() 
local file3=io.open("my_changed_file.txt","r") 
print(file3) 
for line in file3:lines() do print(line) end 
相关问题