📜  Node.js文件系统

📅  最后修改于: 2020-12-24 03:43:47             🧑  作者: Mango

Node.js文件系统(FS)

在Node.js中,文件I / O由围绕标准POSIX函数的简单包装器提供。可以使用以下语法导入节点文件系统(fs)模块:

句法:

var fs = require("fs")

Node.js FS读取文件

fs模块中的每个方法都有同步和异步形式。

异步方法将最后一个参数用作完成函数回调。与同步方法相比,异步方法更为可取,因为它从不阻止程序的执行,因为同步方法会阻止程序执行。

让我们举个例子:

创建一个具有以下内容的名为“ input.txt”的文本文件。

文件:input.txt

Javatpoint is a one of the best online tutorial website to learn different technologies
 in a very easy and efficient manner.

让我们以创建一个名为“ main.js”的JavaScript文件为例,该文件具有以下代码:

文件:main.js

var fs = require("fs");
// Asynchronous read
fs.readFile('input.txt', function (err, data) {
   if (err) {
       return console.error(err);
   }
   console.log("Asynchronous read: " + data.toString());
});
// Synchronous read
var data = fs.readFileSync('input.txt');
console.log("Synchronous read: " + data.toString());
console.log("Program Ended");

打开Node.js命令提示符并运行main.js:

node main.js

Node.js打开文件

句法:

以下是在异步模式下打开文件的方法的语法:

fs.open(path, flags[, mode], callback) 

参数说明:

以下是上述语法中使用的参数的说明:

path:这是一个字符串,其文件名包括path。

标志:标志指定要打开的文件的行为。所有可能的值已在下面提到。

模式:设置文件模式(权限和粘性位),但仅在创建文件时才设置。默认为0666,可读可写。

callback:这是回调函数,它有两个参数(err,fd)。

读/写的Node.js标志

以下是读/写操作的标志列表:

Flag Description
r open file for reading. an exception occurs if the file does not exist.
r+ open file for reading and writing. an exception occurs if the file does not exist.
rs open file for reading in synchronous mode.
rs+ open file for reading and writing, telling the os to open it synchronously. see notes for ‘rs’ about using this with caution.
w open file for writing. the file is created (if it does not exist) or truncated (if it exists).
wx like ‘w’ but fails if path exists.
w+ open file for reading and writing. the file is created (if it does not exist) or truncated (if it exists).
wx+ like ‘w+’ but fails if path exists.
a open file for appending. the file is created if it does not exist.
ax like ‘a’ but fails if path exists.
a+ open file for reading and appending. the file is created if it does not exist.
ax+ open file for reading and appending. the file is created if it does not exist.

创建一个具有以下代码的JavaScript文件“ main.js”,以打开文件input.txt进行读写。

文件:main.js

var fs = require("fs");
// Asynchronous - Opening File
console.log("Going to open file!");
fs.open('input.txt', 'r+', function(err, fd) {
   if (err) {
       return console.error(err);
   }
  console.log("File opened successfully!");     
});

打开Node.js命令提示符并运行main.js:

node main.js

Node.js文件信息方法

句法:

以下是获取文件信息的方法的语法。

fs.stat(path, callback)

参数说明:

路径:这是字符串,文件名包括路径。

回调:这是一个回调函数,它获取两个参数(err,stats),其中stats是fs.Stats类型的对象。

Node.js fs.Stats类方法

Method Description
stats.isfile() returns true if file type of a simple file.
stats.isdirectory() returns true if file type of a directory.
stats.isblockdevice() returns true if file type of a block device.
stats.ischaracterdevice() returns true if file type of a character device.
stats.issymboliclink() returns true if file type of a symbolic link.
stats.isfifo() returns true if file type of a fifo.
stats.issocket() returns true if file type of asocket.

让我们以创建一个名为main.js的JavaScript文件为例,该文件具有以下代码:

文件:main.js

var fs = require("fs");
console.log("Going to get file info!");
fs.stat('input.txt', function (err, stats) {
   if (err) {
       return console.error(err);
   }
   console.log(stats);
   console.log("Got file info successfully!");
   // Check file type
   console.log("isFile ? " + stats.isFile());
   console.log("isDirectory ? " + stats.isDirectory());    
});

现在打开Node.js命令提示符并运行main.js

node main.js