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


R readChar 与连接之间传输字符串


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

说明

将字符串传输到连接或从连接传输字符串,而不假设它们在连接上以空终止。

用法

readChar(con, nchars, useBytes = FALSE)

writeChar(object, con, nchars = nchar(object, type = "chars"),
          eos = "", useBytes = FALSE)

参数

con

connection 对象,或命名文件的字符串,或原始向量。

nchars

整数向量,给出要读取或写入的(未终止的)字符串的字符长度。元素必须 >= 0 并且不是 NA

useBytes

逻辑:对于 readCharnchars 是否应该被视为多字节语言环境中的字节数而不是字符?对于writeChar,请参阅writeLines

object

要写入连接的字符向量,至少与 nchars 一样长。

eos

‘字符串结尾’:字符串。要在每个字符串之后写入的终止符,后跟 ASCII nul ;使用 NULL 来表示根本没有终止符。

细节

这些函数补充了 readBinwriteBin,它们读写 C 风格的 zero-terminated 字符串。它们适用于已知长度的字符串,并且可以选择写入 end-of-string 标记。它们仅适用于当前区域设置中有效的字符串。

这些函数旨在与binary-mode 连接一起使用。如果con 是字符串,则函数调用file 来获取在函数调用期间打开的binary-mode 文件连接。

如果连接打开,则从当前位置读取/写入。如果未打开,则在调用期间以适当的模式(二进制读或写)打开它,然后再次关闭。打开的连接必须处于二进制模式。

如果使用 con 原始向量调用 readChar,则向量中的数据将用作输入。如果使用 con 原始向量调用 writeChar,则仅指示应返回原始向量。

包含 ASCII nul 的字符串将被 readChar 正确读取,但会在第一个 nul 处被截断并出现警告。

如果 readChar 请求的字符长度长于连接上可用的数据,则返回可用的数据。对于writeChar,如果请求的字符过多,则输出将以零填充,并带有警告。

缺失的字符串被写为 NA

对于 readChar ,长度为读取的项目数的字符向量(可能小于 length(nchars) )。

对于 writeChar ,原始向量(如果 con 是原始向量)或不可见的 NULL

注意

早期版本R允许在字符串中嵌入 nul 字节,但不允许R>= 2.8.0。readChar通常用于读取固定大小的零填充字节字段,其中readBin不合适。readChar如果没有嵌入的 null ,仍然可以用于此类字段:否则readBin(what = "raw")提供了一种替代方案。

在非 UTF-8 多字节语言环境中,nchars 将被解释为字节而不是字符,并带有警告。

对 UTF-8 读取的有效性检查很少。

在文本模式连接上使用这些函数可能会起作用,但不应与对连接的文本模式访问混合使用,特别是在使用 encoding 参数打开连接时。

例子

## test fixed-length strings
zzfil <- tempfile("testchar")
zz <- file(zzfil, "wb")
x <- c("a", "this will be truncated", "abc")
nc <- c(3, 10, 3)
writeChar(x, zz, nc, eos = NULL)
writeChar(x, zz, eos = "\r\n")
close(zz)

zz <- file(zzfil, "rb")
readChar(zz, nc)
readChar(zz, nchar(x)+3) # need to read the terminator explicitly
close(zz)
unlink(zzfil)

也可以看看

“R 数据导入/导出”手册。

connections , readLines , writeLines , readBin

相关用法


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