當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。