如何对打开的文件执行 lseek 并读取 N 个字节?

问题描述 投票:0回答:1

我想使用 Elixir 读取一个具有固定长度标头的二进制文件,并且其中的数据结构具有可确定的长度。这些文件可能很大,我真的不想被迫将整个文件读到内存中。也许我的搜索功能缺乏,但我在文档或其他地方没有找到类似的东西。

data-structures io elixir file-access lseek
1个回答
0
投票

看起来您正在寻找

:file.pread/2

iex(1)> File.write("example", "Hello, World")
:ok
iex(2)> file = File.open!("example")
#PID<0.111.0>
iex(5)> :file.pread(file, 7, 5)
{:ok, "World"}
iex(6)> :file.pread(file, 0, 5)
{:ok, "Hello"}
© www.soinside.com 2019 - 2024. All rights reserved.