---
source_url: https://docs.dolphindb.cn/zh/funcs/r/readRecord_.html
fetched_at: 2026-05-19T09:35:23Z
category: funcs
title: readRecord!
sha1: b058614090d4cda00fe658ee16c28a903bdf3564
---

# readRecord!

## 语法

`readRecord!(handle, holder, [offset=0], [length])`

## 详情

`readRecord!` 函数将二进制文件转换为 DolphinDB 数据对象。DolphinDB
也提供了 [writeRecord](../w/writeRecord.html) 函数，用于将 DolphinDB
数据对象转换为二进制文件，以供其它程序使用。 二进制文件基于行，且每行包含的记录有相同的数据类型和固定的长度。例如，如果一个二进制文件包含了 5
个数据域，分别具有下述数据类型（长度）：char(1), boolean(1), short(2), int(4), long(8), 和 double(8)， 那么
`readRecord!` 函数将把每行视为 24 个字节。类似地，`writeRecord`
函数把 DolphinDB 对象（例如表或元组）转换为具有上述格式的二进制文件。

## 参数

**handle** 是文件句柄。

**holder** 是用于保存读取的数据的变量。

**offset** 表示数据保存至 *holder* 的起始位置。

**length** 是从文件中读取的行数。

## 返回值

返回读取的行数。

## 例子

```dolphindb
// 创建一个文件句柄，用于读取记录。二进制文件 a.bin 包含了 1000 条记录。
f=file("c:/DB/a.bin")
t=table(1000:0, `PERMNO`PRC`VOL`SHROUT, `int`double`int`double)
f.readRecord!(t);
// output
1000

// 类似地，我们可以将一个二进制文件读入一个 DolphinDB 元组对象
f=file("c:/DB/a.bin")
t=loop(array, [int, double, int, double], 0, 500)
// 创建具有 4 个数组元素的元组 t。每一个数组的长度是 500
 f.readRecord!(t, 0, 500);
// 读取前 500 行
// output
500
```
