Lua中如何一次性读取整个文件的操作是?

2026-04-01 18:511阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计385个文字,预计阅读时间需要2分钟。

Lua中如何一次性读取整个文件的操作是?

我正在读取一个完整的MP3文件,以便读取其ID3标签。当我注意到文件时,我意识到`read(*.a)`显然没有读取完整的文件,而只是读取了一小部分。因此,我尝试了一些解决方案来获取整个文件的内容。

我正在读取一个完整的mp3文件,以便读出id3标签。那是当我注意到这个文件:read(“* a”)显然没有读取完整的文件,而是一小部分。所以我试图建立一些解决方法来获取整个文件的内容:

function readAll(file) local f = io.open(file, "r") local content = "" local length = 0 while f:read(0) ~= "" do local current = f:read("*all") print(#current, length) length = length + #current content = content .. current end return content end

对于我的测试文件,这表明执行256次读取操作,读取总共约113kB(整个文件大约为7MB)。虽然这应该足以阅读大多数id3标签,但我不知道为什么Lua以这种方式行事(特别是因为它不会读取大的基于文本的文件,例如* .oj或* .ase)。有没有解释这个行为或可能的解决方案可靠地读取整个文件?

我必须缺少某些东西,但是我不明白为什么需要一个循环。这应该有效(但是如果文件无法打开,最好添加错误处理):

function readAll(file) local f = io.open(file, "rb") local content = f:read("*all") f:close() return content end

Lua中如何一次性读取整个文件的操作是?

本文共计385个文字,预计阅读时间需要2分钟。

Lua中如何一次性读取整个文件的操作是?

我正在读取一个完整的MP3文件,以便读取其ID3标签。当我注意到文件时,我意识到`read(*.a)`显然没有读取完整的文件,而只是读取了一小部分。因此,我尝试了一些解决方案来获取整个文件的内容。

我正在读取一个完整的mp3文件,以便读出id3标签。那是当我注意到这个文件:read(“* a”)显然没有读取完整的文件,而是一小部分。所以我试图建立一些解决方法来获取整个文件的内容:

function readAll(file) local f = io.open(file, "r") local content = "" local length = 0 while f:read(0) ~= "" do local current = f:read("*all") print(#current, length) length = length + #current content = content .. current end return content end

对于我的测试文件,这表明执行256次读取操作,读取总共约113kB(整个文件大约为7MB)。虽然这应该足以阅读大多数id3标签,但我不知道为什么Lua以这种方式行事(特别是因为它不会读取大的基于文本的文件,例如* .oj或* .ase)。有没有解释这个行为或可能的解决方案可靠地读取整个文件?

我必须缺少某些东西,但是我不明白为什么需要一个循环。这应该有效(但是如果文件无法打开,最好添加错误处理):

function readAll(file) local f = io.open(file, "rb") local content = f:read("*all") f:close() return content end

Lua中如何一次性读取整个文件的操作是?