Main Content

nextblock

有关分块文件集中下一个分块的信息

自 R2020a 起

说明

示例

blkInfo = nextblock(bs) 返回 BlockedFileSet 对象 bs 中下一个分块的信息,然后将分块文件集的内部指针前进到下一个分块。对 nextblock 函数的后续调用继续从上一调用的端点读取。

示例

全部折叠

检查分块文件集是否有其他分块可供处理,并以迭代方式读取数据。

为一组文件创建一个分块文件集 bs

folder = {'accidents.mat','airlineResults.mat','census.mat','earth.mat'}
folder = 1x4 cell
    {'accidents.mat'}    {'airlineResults.mat'}    {'census.mat'}    {'earth.mat'}

bs = matlab.io.datastore.BlockedFileSet(folder)
bs = 
  BlockedFileSet with properties:

                   NumBlocks: 4
               NumBlocksRead: 0
                   BlockSize: 'file'
                   BlockInfo: BlockInfo for all 4 blocks
    AlternateFileSystemRoots: {}

使用 hasNextBlocknextblock 函数,一次读取一个分块的分块信息,同时分块仍保留在文件集中。

while hasNextBlock(bs)
   file = nextblock(bs)
end
file = 
  1x1 BlockInfo
                                                    Filename                                                    FileSize    Offset    BlockSize
    ________________________________________________________________________________________________________    ________    ______    _________

    "/mathworks/devel/bat/filer/batfs1904-0/Bdoc24a.2528353/build/matlab/toolbox/matlab/demos/accidents.mat"      7343        0         7343   


file = 
  1x1 BlockInfo
                                      Filename                                        FileSize     Offset    BlockSize 
    _____________________________________________________________________________    __________    ______    __________

    "/tmp/Bdoc24a_2528353_989294/tpe9f9016d/matlab-ex12893120/airlineResults.mat"    1.5042e+05      0       1.5042e+05


file = 
  1x1 BlockInfo
                                                  Filename                                                   FileSize    Offset    BlockSize
    _____________________________________________________________________________________________________    ________    ______    _________

    "/mathworks/devel/bat/filer/batfs1904-0/Bdoc24a.2528353/build/matlab/toolbox/matlab/demos/census.mat"      353         0          353   


file = 
  1x1 BlockInfo
                                                  Filename                                                  FileSize    Offset    BlockSize
    ____________________________________________________________________________________________________    ________    ______    _________

    "/mathworks/devel/bat/filer/batfs1904-0/Bdoc24a.2528353/build/matlab/toolbox/matlab/demos/earth.mat"     32522        0         32522  


输入参数

全部折叠

分块文件集,指定为 matlab.io.datastore.BlockedFileSet 对象。要创建 BlockedFileSet 对象,请参阅 matlab.io.datastore.BlockedFileSet

示例: nextblock(bs)

输出参量

全部折叠

此 属性 为只读。

有关 BlockedFileSet 对象中分块的信息,以 BlockInfo 对象形式返回,具有以下属性:

  • Filename - BlockedFileSet 对象中文件的名称。该名称包含文件的完整路径。

  • FileSize - 文件的大小(以字节为单位)。

  • Offset - 要读取的文件内的起始偏移量。

  • BlockSize - 分块的大小(以字节为单位)。

提示

  • 如果 BlockedFileSet 对象中不存在更多分块,nextblock 函数将返回错误。为了避免此错误,可将 nextblockhasNextBlockreset 结合使用。hasNextBlock 函数检查在分块文件集中是否仍有分块,而 reset 方法将内部指针重置到分块文件集的开头。

版本历史记录

在 R2020a 中推出