当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R seek 重新定位连接的函数


R语言 seek 位于 base 包(package)。

说明

重新定位连接的函数。

用法

seek(con, ...)
## S3 method for class 'connection'
seek(con, where = NA, origin = "start", rw = "", ...)

isSeekable(con)

truncate(con, ...)

参数

con

connection

where

数字。文件位置(相对于 origin 指定的原点)或 NA

rw

字符串。空或 "read""write" ,允许部分匹配。

origin

字符串。 "start""current""end" 之一:请参阅“详细信息”。

...

传入或传出其他方法的进一步参数。

细节

seekwhere = NA 返回连接的当前字节偏移量(从头开始),并且使用非缺失的 where 参数,连接将重新定位(如果可能)到指定位置。 isSeekable 返回连接原则上是否支持 seek :当前仅(可能是 gz-compressed)文件连接支持。

where存储为实数,但应表示整数:非整数值可能会被截断。请注意,可能的值可能超过最大可表示数R integer在 64 位版本和某些 32 位版本上。

文件连接可以打开以进行写入/追加,在这种情况下R保持不同的阅读和写作位置。哪个seek指的是可以通过其设置rw参数:默认值是最后使用的模式(读取或写入)。大多数文件仅打开用于读取或写入,因此默认为该状态。如果一个文件以读写方式打开但尚未使用,则默认为读取位置 (0)。

读取的初始文件位置始终位于开头。对于 "r+""r+b" 模式,写入的初始位置位于文件的开头,否则位于文件的末尾。某些平台仅允许在追加模式下在文件末尾写入。 (以追加模式打开的文件的报告写入位置通常不可靠,直到文件被写入为止。)

gzfile 连接支持 seek,但有许多限制,使用未压缩文件的文件位置。他们不支持origin = "end"。写入时,只能向前查找:读取时,通过倒带文件并从头开始重新读取来支持向后查找。

如果使用 where 的非 NA 值调用 seek,则文本模式连接上的任何推送都会被丢弃。

truncate 截断在当前位置打开以进行写入的文件。它仅适用于 file 连接,并且并未在所有平台上实现:在其他平台(包括 Windows)上,它不适用于大型(> 2Gb)文件。

这些都不应该在选择重新编码的文本模式连接上工作。

seek返回当前位置(在任何移动之前),作为距原点的(数字)字节偏移量(如果相关),或者0如果不。请注意,该位置可能超过一个中的最大可表示数字R integer在 64 位版本和某些 32 位版本上。

truncate 返回 NULL :如果失败(或未实现),它将停止并出现错误。

isSeekable 返回一个逻辑值,连接是否支持 seek

警告

用于seek在 Windows 上不鼓励这样做。我们在 Windows 实现文件定位中发现了如此多的错误,建议用户自行承担风险,并要求用户不要浪费时间R开发人员花时间处理有关 Windows 缺陷的错误报告。

也可以看看

connections

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Functions to Reposition Connections。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。