首页 > Erlang并发教程 > 10.16 Erlang并发编程-文件访问
2013
11-20

10.16 Erlang并发编程-文件访问

BACK TOP文章索引

  1. 文件访问
  2. 共5条评论

文件访问

从上述的元组文件中读入数据的最简单的方法就是使用file:consult(File)读取文件(参见附录C)——这个方法很耗时,因为每一行都会被读取和解析。一个好一点的做法是将输入文件从文本格式改为二进制格式。通过以下函数可以实现:

reformat(FileOfTerms, BinaryFile) ->
    {ok, Terms} = file:consult(FileOfTerms),
    file:write_file(BinaryFile, term_to_binary(Terms)).

要读入二进制文件并恢复原始数据,执行:

read_terms(BinaryFile) ->
    {ok, Binary} = file:read(BinaryFile),
    binary_to_term(Binary).

读取二进制文件并将结果转换为项式要比读取并解析一组项式要快得多,从下表便中可见一斑:

文本大小(bytes) 二进制大小(bytes) file:consult (ms) read_terms (ms) 耗时比例
128041 118123 42733 783 54.6
4541 4190 1433 16 89.6

对于4.5K的文件,二进制文件读取要快90倍;对于128K的文件要快55倍。注意二进制文件要被文本文件小一些。


10.16 Erlang并发编程-文件访问》有 5 条评论

  1. 加藤麻里奈 说:

    [ali送礼物][ali喷嚏][ali飘过]1111大家一起来撸哦~购物省钱攻略→ http://20151111.xyz

留下一个回复

你的email不会被公开。