本文概述
在Node.js中, 文件I / O由围绕标准POSIX函数的简单包装器提供。可以使用以下语法导入节点文件系统(fs)模块:
句法:
var fs = require("fs")
Node.js FS读取文件
fs模块中的每个方法都有同步和异步形式。
异步方法将最后一个参数用作完成函数回调。与同步方法相比, 异步方法更为可取, 因为异步方法不会阻塞程序的执行, 而不会像同步方法那样阻塞程序。
让我们举个例子:
创建一个名为” input.txt”的文本文件, 其内容如下。
文件:input.txt
srcmini 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 | 打开文件进行读取。如果文件不存在, 则会发生异常。 |
r+ | 打开文件进行读写。如果文件不存在, 则会发生异常。 |
rs | 打开文件以同步模式读取。 |
rs+ | 打开文件进行读写, 告诉操作系统同步打开它。请参阅有关” rs”的注意事项, 以谨慎使用此功能。 |
w | 打开文件进行写入。文件被创建(如果不存在)或被截断(如果存在)。 |
wx | 类似于” w”, 但如果路径存在则失败。 |
w+ | 打开文件进行读写。文件被创建(如果不存在)或被截断(如果存在)。 |
wx+ | 类似于” w +”, 但如果存在路径则失败。 |
a | 打开文件进行追加。如果文件不存在, 则创建该文件。 |
ax | 类似于” a”, 但如果路径存在则失败。 |
a+ | 打开文件以进行读取和附加。如果文件不存在, 则创建该文件。 |
ax+ | 打开文件以进行读取和附加。如果文件不存在, 则创建该文件。 |
创建一个具有以下代码的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() | 如果简单文件的文件类型, 则返回true。 |
stats.isdirectory() | 如果目录的文件类型返回true。 |
stats.isblockdevice() | 如果块设备的文件类型返回true。 |
stats.ischaracterdevice() | 如果字符设备的文件类型返回true。 |
stats.issymboliclink() | 如果符号链接的文件类型返回true。 |
stats.isfifo() | 如果fifo的文件类型返回true。 |
stats.issocket() | 如果asocket的文件类型, 则返回true。 |
让我们以创建一个名为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
评论前必须登录!
注册