我问了一个类似的问题,不知道什么不清楚,但我会再试一次。我有一个文件。文件名是file.txt,我将file.txt读入列表中。现在我可以将其打印到控制台,它会显示:文件IO和列表处理
blah
blah
blah
blah
这很好。完美:)现在我将如何转发到一个新的文件?使新文件包含:
blah
blah
blah
blah
没有更多,也没有少。这里是我用来读取列表中的文件的代码: {ok,Device} = file:open(“file.txt”,[read]), Li = readdata(Device,[])。
readdata(Device, Accum) ->
case io:get_line(Device, "") of
eof -> file:close(Device), Accum;
Line -> readdata(Device, Accum ++ [Line])
end.
如此反复,以显示新的文件正是我读的显示器,没有多余的人物,不是所有的1个line..etc ..一样的:)
文件是非常小,在其他语言的简单,如: '数据[] = file.read( “file.txt的”)'' 开放= file.open( “new.txt”)' '的foreach(数据线)'' file.write(开放式,线)'' end' ' 我其实不想“复制”文件中,这仅仅是我使用来解释该定义我想把数据列表写到一个新文件中,就像它在另一个文件中出现的一样。我可能希望修改列表并将其写回到同一个文件中。因此,复制只是我使用的一个术语。 – ace007
Erlang的列表模块确实有一个foreach函数,用于处理列表中的副作用。你可以看看。我会尝试把答案和一些代码示例一起。 – dsmith
我已经使用foreach,出于某种原因输出似乎全部在文件中的1行,我试过foreach和映射相同的结果。 – ace007