📅  最后修改于: 2023-12-03 15:17:54.462000             🧑  作者: Mango
Node.js 中的fs.read()
方法用于从指定文件中读取数据。它是文件系统模块(fs)中的一部分,支持异步和同步两种方式。
异步方式:
fs.read(fd, buffer, offset, length, position, callback)
同步方式:
fs.readSync(fd, buffer, offset, length, position)
参数说明如下:
fd
:文件描述符buffer
:读取数据的缓冲区offset
:缓冲区写入的偏移量length
:读取的字节数position
:文件读取的起始位置callback
:读取完成后的回调函数(仅适用于异步方式)fs.read()
方法的返回值是与读取字节数相等的字节数。如果读取到文件末尾,返回的字节数将小于请求的字节数。
下面分别展示异步和同步方式下使用fs.read()
方法的示例。
const fs = require('fs');
const bufferSize = 1024;
const buffer = Buffer.alloc(bufferSize);
fs.open('file.txt', 'r', (err, fd) => {
if (err) throw err;
fs.read(fd, buffer, 0, bufferSize, 0, (err, bytesRead, buffer) => {
if (err) throw err;
console.log(`Read ${bytesRead} bytes from file.`);
console.log(buffer.slice(0, bytesRead).toString());
});
});
输出如下:
Read 11 bytes from file.
Hello, Node!
const fs = require('fs');
const bufferSize = 1024;
const buffer = Buffer.alloc(bufferSize);
try {
const fd = fs.openSync('file.txt', 'r');
const bytesRead = fs.readSync(fd, buffer, 0, bufferSize, 0);
console.log(`Read ${bytesRead} bytes from file.`);
console.log(buffer.slice(0, bytesRead).toString());
} catch (err) {
console.error(err);
}
输出如下:
Read 11 bytes from file.
Hello, Node!
fs.open()
或fs.openSync()
方法返回的值。fs.read()
方法会自动关闭文件描述符。在同步方式下,需要手动调用fs.closeSync()
方法关闭文件描述符。