Erlang中文手册(Erldoc.com)  »  file  »  pwrite/3
Erlang并发编程 Erlang/OTP设计原理 Erlang/OTP[pdf] Mnesia用户手册[pdf] Erlang完整手册[en] 官网手册[en] 模块列表 方法列表 随机 Erlang中文社区(BBS) 美女图库

file:pwrite/3

在文件的一个指定位置写入数据

用法:

pwrite(IoDevice, LocBytes) -> ok | {error, {N, Reason}}

该方法会在一个操作里执行 file:position/2file:write/2 这两个方法,这比每一次调用更有效率。如果 IoDevice 以 raw 的模式打开,那么会有一些限制出现:参数 Location 只允许是一个整数;在操作执行完后文件的当前位置是被设置为 undefined。

当定位在一个不是 latin1 字符而是其他编码的文件,必须谨慎设置一个正确字符边界的位置,详情看 file:position/2

下面是在文件位置处的第 N 个数据长度(N * Size)写入数据,如果原先已有旧的数据则会被覆盖。

File = "./file_write.txt",
{ok, IoDevice} = file:open(File, [write, raw, binary]),
Bin = <<"file:pwrite/2 test\n">>,
Size = size(Bin),
lists:foreach(
    fun(N) -> file:pwrite(IoDevice, N * Size, Bin) end,
    lists:seq(0, 50)
),
file:close(IoDevice).
阿里云 - 最高1000元通用代金券立即可用
沪ICP备13037221号-9