Node FS – NodeJS 创建文件、读取文件、写入文件

Node FS代表NodeJS文件系统模块。在我之前的帖子中,我们已经讨论了如何使用require()调用导入Node JS模块。在阅读本文之前,请阅读这篇帖子“Node JS导出和导入模块”以了解require()调用的用法。

节点文件系统

在这篇文章中,我们将讨论Node.js平台的“fs”模块。FS代表文件系统。这个模块也被称为IO或文件系统或流模块。

NodeJS的FS模块是一个内建模块,用于处理文件和目录。它提供了许多功能,包括读取、写入、复制、删除和移动文件等。使用FS模块,我们可以轻松地进行文件操作,例如创建新文件、打开现有文件以及查看和修改文件的内容。此外,FS模块还提供了异步和同步的操作方法,可以根据需要选择适合的方式来处理文件。

Node FS模块简介

Node FS模块提供与文件系统进行交互的API,可以执行一些IO操作,例如创建文件、读取文件、删除文件、更新文件等。与一些Node模块(如“npm”、“http”等)类似,Node JS的“fs”模块也是Node JS平台的基本组成部分。我们无需进行任何设置即可使用Node JS FS模块。

节点文件系统模块导入

我们只需要将node fs模块导入到我们的代码中,并开始编写IO操作的代码。要导入一个node fs模块;

var fs = require("fs");

这个require()调用将Node JS的”fs”模块导入缓存并创建一个类型为Node FS的对象。一旦完成,我们就可以使用node fs对象执行任何I/O操作。假设我们的${Eclipse_Workspace}指的是D:\RamWorkspaces\NodeWorkSpace。从现在开始,我将使用这个变量来引用我的Eclipse工作空间。作为Java或DOT NET或C/C++开发人员,我们已经学习并编写了一些I/O程序。I/O或流有两种类型:

  • Write Stream – To write data to a Stream.
  • Read Stream – To read data from a Stream.

使用Node.js创建文件

现在我们将讨论如何使用Node JS FS API创建一个新文件。

    1. 在Eclipse IDE中创建一个Node JS项目。

从前面的示例中复制package.json文件并更新所需内容。


{
"name": "filesystem",
"version": "1.0.0",
"description": "文件系统示例",
"main": "filesystem",
"author": "User 01",
"engines":{
"node": "*"
}
}

创建一个包含以下内容的JavaScript文件;fs-create-file.js


/ **
* Node FS示例
* Node JS创建文件
* /
var fs = require(“ fs”);

var createStream = fs.createWriteStream(“User 01.txt”);
createStream.end();

代码说明:var fs = require(“ fs”)要求()调用将指定的Node FS模块加载到缓存中并将其分配给名为fs的对象。 fs.createWriteStream(filename)调用用于创建具有给定filename的写入流和文件。 createStream.end()调用结束或关闭已打开的流。

在执行fs-create-file.js之前,首先观察文件系统项目的内容,您会注意到“User01.txt”文件不可用。

在${Eclipse_Workspace}/filesystem下打开命令提示符,并运行node命令来执行fs-create-file.js文件,如下图所示。现在注意您的项目目录内容,您将注意到一个名为“ User 01.txt”的空文件。

用Node.js写入文件

我们将使用 Node FS API 来创建一个新文件并将一些数据写入其中。这是我们先前示例的延续。

    1. 从${Eclipse_Workspace}/filesystem文件夹中删除之前创建的“User 01.txt”文件。

创建一个名为fs-write-file.js的JavaScript文件,内容如下:


/**
* Node FS示例
* Node JS写入文件
*/
var fs = require("fs");

var writeStream = fs.createWriteStream("User 01.txt");
writeStream.write("嗨,User 01用户。");
writeStream.write("谢谢。");
writeStream.end();

使用createStream.write(sometext)方法将一些文本写入文件。

在${Eclipse_Workspace}/filesystem文件夹中打开命令提示符,并运行node命令来执行fs-write-file.js文件,如下所示。

转到${Eclipse_Workspace}/filesystem文件夹并打开“User 01.txt”文件以验证其内容。现在我们已经创建了一个新文件并向其中写入了一些数据。

使用Node JS读取文件。

我们将使用Node FS API打开和读取现有文件的内容,并将该内容写入控制台。这是我们之前示例的延续。在这里,我们将使用命名的JavaScript函数。请通过这个示例来理解。
用以下内容创建一个JavaScript文件: fs-read-file1.js


/**
* Node FS读取文件
* Node JS读取文件
*/

var fs = require("fs");
function readData(err, data) {
console.log(data);
}

fs.readFile('User 01.txt', 'utf8', readData);

代码说明:readData()是一个JavaScript函数,它有两个参数;

err: 是一个错误对象。当我们的程序无法打开或读取文件中的数据时,FS模块会将一些错误消息写入此参数。
data: 是一个变量,用于存储一些数据。

此函数接受data参数,并将该数据打印到控制台。fs.readFile()是Node JS FS API。它接受三个参数;

文件名
要读取的文件数据格式
JavaScript函数或JavaScript匿名函数readFile()从给定格式(第二个参数)的文件名(第一个参数)中读取数据,并使用第三个参数中给出的函数执行一些操作。在这个例子中,我们使用一个普通的JavaScript函数作为第三个参数。我们将在下一个例子中看到如何使用JavaScript匿名函数。在我们的例子中,readFile()从“User 01.txt”文件中读取数据,并将其写入控制台。如果我们不使用’utf8’格式,那么我们将得到二进制数据。我们将在几分钟内验证这一点。

在${Eclipse_Workspace}/filesystem处打开命令提示符,并运行node命令以执行fs-read-file1.js文件。现在我们已经观察到我们的代码已成功打开文件,读取其内容并将其内容写入控制台。

Node.js 以二进制格式读取文件

现在我们将使用JavaScript匿名函数从文件中读取数据。通过这个示例来理解。它与之前的fs-read-file1.js示例类似,只是使用了匿名函数。如果你对JavaScript匿名函数不熟悉,请参考一些JavaScript教程并了解一些基本概念。创建一个包含以下内容的JavaScript文件:fs-read-file2.js。

/**
 * Node FS File System Module
 * Node.js read file example
 */
var fs = require("fs");

fs.readFile('User 01.txt', 'utf8', function(err, data) {
	  console.log(data);
});

代码说明:这里的readFile()函数使用JavaScript匿名函数从文件中读取数据,并将文件内容写入控制台。当我们运行这个文件时,我们将得到与fs-read-file2.js示例相同的输出。现在移除“utf8”数据格式以查看二进制输出。

/**
 * Node FileSystem Module  
 * Node JS Read File Binary Data
 */
var fs = require("fs");

fs.readFile('User 01.txt', function(err, data) {
	  console.log(data);
});
Node.js read file as binary data
[anyFSAPIObject] + Press . (dot) + After dot Press (CTRL + Space Bar)
Node.js FS module Enide IDE
发表回复 0

Your email address will not be published. Required fields are marked *