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