迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Node.js >

在 Node.js 中读取文件

作者:迹忆客 最近更新:2023/03/27 浏览次数:

在这篇简短的文章中,我们将学习如何在 Node.js 中读取文件。

在 Node.js 中读取文件

fs 模块提供了许多有用的函数来访问文件系统并与之交互。 fs 模块的一个特殊功能是默认情况下所有方法都是异步的,但也可以通过添加同步来同步工作。

我们将使用 fs.readFile() 来读取 Node.js 中的文件。 您需要传递文件路径、编码和回调函数来调用文件数据或错误。

fs.readFile() 方法是用于读取文件的内置方法。 它将整个文件读入缓冲区。 require() 方法用于加载模块,如 const fs = require('fs')

语法:

fs.readFile( filename, encoding, callbackFn )

此方法接受三个参数。

callbackFn 参数 说明
err 如果读取文件时发生任何错误。
data 正在读取的文件的内容。

它返回文件中存储的内容、数据或读取文件时遇到错误。 让我们通过一个例子来理解它。

代码:

const fs = require('fs');
fs.readFile('/helloworld.txt', 'utf8', (err, data) => {
  if (err) {
    console.error(err);
    return;
  }
  console.log(data);
});

输出结果如下:

Hello jiyik.com readers!

另一种选择是使用同步版本 fs.readFileSync()

代码:

const fs = require('fs');
try {
  const fileContent = fs.readFileSync('/helloworld.txt', 'utf8');
  console.log(fileContent);
} catch (err) {
  console.error(err);
}

输出结果如下:

Hello jiyik.com readers!

我们还可以使用 fs/promises 模块提供的 fsPromises.readFile() 方法。

代码:

const fsPromises = require('fs/promises');

async function FileReadFn() {
  try {
    const fileContent = await fsPromises.readFile('/helloworld.txt', { encoding: 'utf8' });
    console.log(fileContent);
  } catch (err) {
    console.log(err);
  }
}
FileReadFn();

输出结果如下:

Hello jiyik.com readers!

fs.readFile()fsPromises.readFile()fs.readFileSync() 这三个方法都在返回数据之前将文件的全部内容读入内存。 这意味着大文件将极大地影响内存使用和程序执行速度。

我们没有等待文件完成读取,而是在准备好要发送的数据后立即开始流式传输到 HTTP 客户端。 与使用其他数据处理方法相比,Streams 本质上提供了两个主要优势。

  1. 内存效率——您不必在处理之前将大量数据加载到内存中。
  2. 时间效率 - 开始处理数据所需的时间要少得多,因为您可以立即开始处理,而不是等到整个有效负载可用。

在文件流上,调用 pipe() 方法,它获取源并将其定向到目标。 目标流是 pipe() 方法的返回值,这是一件非常方便的事情,它允许我们将对 pipe() 的多个调用链接在一起。

代码:

const fs = require('fs');
const http = require('http');

const nodeServer = http.createServer((req, res) => {
  const fileStream = fs.createReadStream(`${__dirname}/helloworld.txt`);
  fileStream.pipe(res);
});
nodeServer.listen(3000);

输出结果如下:

Hello jiyik.com readers!

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 Node.js 中编码 URL

发布时间:2023/03/27 浏览次数:201 分类:Node.js

在这篇简短的文章中,我们将学习如何在 Node.js 中进行 URL 编码。

在 Node.js 中编码 Base64

发布时间:2023/03/27 浏览次数:155 分类:Node.js

在本文中,我们将学习如何在 Node.js 中将字符串或文本转换为 base64。

Node.js 与 React JS 的比较

发布时间:2023/03/27 浏览次数:137 分类:Node.js

本文比较和对比了两种编程语言,Node.js 和 React。React 和 Node.js 都是开源 JavaScript 库的示例。 这些库用于构建用户界面和服务器端应用程序。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便