我如何在Erlang中读取大小为6GB的文本文件?

kuarbcqp  于 2022-12-16  发布在  Erlang
关注(0)|答案(2)|浏览(156)

我有6 GB的文本文件。我想读取这个文件,解析每行的数据,并将其保存在我的数据库中。但由于内存问题,不可能一次读取整个6 GB文件。因此,我如何逐块读取数据,然后处理它?

dzjeubhm

dzjeubhm1#

也许你可以试试read函数。它允许一个参数来限制文件中的字节数或字符数。

e5nszbig

e5nszbig2#

大概是这样的

process_file(Filename) ->
    {ok, F} = file:open(Filename, [read]),
    process_lines(F).

process_lines(F) ->
    case file:read_line(F) of
        {ok, Line} ->
            %% do something with Line
            process_lines(F);
        eof ->
            file:close(F)
    end.

相关问题