📜  Node.js 文件系统完整参考(1)

📅  最后修改于: 2023-12-03 15:33:10.772000             🧑  作者: Mango

Node.js 文件系统完整参考

Node.js 中的文件系统模块提供了一组 API 来与文件系统进行交互。它包括读取文件、写入文件、重命名文件、删除文件等,你可以对这些操作进行增、删、改、查操作,使你能够操作文件系统。

读取文件
读取文本文件

在 Node.js 文件系统模块中使用 fs.readFileSync() 方法可以同步地从文件中读取数据,并作为字符串或缓冲区对象返回。

const fs = require('fs');
const data = fs.readFileSync('file.txt', 'utf8');
console.log(data);

在上述代码中,我们通过 fs.readFileSync() 方法读取了 file.txt 文件,并将其中的内容作为字符串返回,并打印输出。

同样,你也可以使用 fs.readFile() 方法以异步方式从文件中读取数据,并在读取完成后作为字符串或缓冲区对象返回。

const fs = require('fs');
fs.readFile('file.txt', 'utf8', function(err, data) {
  if (err) throw err;
  console.log(data);
});

在上述代码中,我们使用 fs.readFile() 方法以异步方式读取了 file.txt 文件,并在读取完成后将其中的内容作为字符串返回,并打印输出。

读取二进制文件

在 Node.js 文件系统模块中使用 fs.readFileSync() 方法可以同步地从文件中读取数据,并作为缓冲区对象返回。

const fs = require('fs');
const data = fs.readFileSync('file.jpg');
console.log(data);

在上述代码中,我们通过 fs.readFileSync() 方法读取了 file.jpg 文件,并将其中的内容作为缓冲区对象返回,并打印输出。

同样,你也可以使用 fs.readFile() 方法以异步方式从文件中读取数据,并在读取完成后作为缓冲区对象返回。

const fs = require('fs');
fs.readFile('file.jpg', function(err, data) {
  if (err) throw err;
  console.log(data);
});

在上述代码中,我们使用 fs.readFile() 方法以异步方式读取了 file.jpg 文件,并在读取完成后将其中的内容作为缓冲区对象返回,并打印输出。

写入文件
写入文本文件

在 Node.js 文件系统模块中使用 fs.writeFileSync() 方法可以同步地向文件中写入数据。

const fs = require('fs');
fs.writeFileSync('file.txt', 'Hello, World!', 'utf8');

在上述代码中,我们通过 fs.writeFileSync() 方法向 file.txt 文件中写入了字符串 Hello, World!

同样,你也可以使用 fs.writeFile() 方法以异步方式向文件中写入数据。

const fs = require('fs');
fs.writeFile('file.txt', 'Hello, World!', 'utf8', function(err) {
  if (err) throw err;
  console.log('Data written to file');
});

在上述代码中,我们使用 fs.writeFile() 方法以异步方式向 file.txt 文件中写入了字符串 Hello, World!。在写入完成后打印输出 Data written to file

写入二进制文件

在 Node.js 文件系统模块中使用 fs.writeFileSync() 方法可以同步地向文件中写入数据。

const fs = require('fs');
const buffer = Buffer.from([0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x2c, 0x20, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x21]);
fs.writeFileSync('file.bin', buffer);

在上述代码中,我们通过 fs.writeFileSync() 方法向 file.bin 文件中写入了一个 13 字节的 Buffer 对象。

同样,你也可以使用 fs.writeFile() 方法以异步方式向文件中写入数据。

const fs = require('fs');
const buffer = Buffer.from([0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x2c, 0x20, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x21]);
fs.writeFile('file.bin', buffer, function(err) {
  if (err) throw err;
  console.log('Data written to file');
});

在上述代码中,我们使用 fs.writeFile() 方法以异步方式向 file.bin 文件中写入了一个 13 字节的 Buffer 对象。在写入完成后打印输出 Data written to file

重命名文件

在 Node.js 文件系统模块中使用 fs.renameSync() 方法可以同步地重命名文件。

const fs = require('fs');
fs.renameSync('oldfile.txt', 'newfile.txt');

在上述代码中,我们通过 fs.renameSync() 方法将 oldfile.txt 文件重命名为 newfile.txt

同样,你也可以使用 fs.rename() 方法以异步方式重命名文件。

const fs = require('fs');
fs.rename('oldfile.txt', 'newfile.txt', function(err) {
  if (err) throw err;
  console.log('File renamed');
});

在上述代码中,我们使用 fs.rename() 方法以异步方式将 oldfile.txt 文件重命名为 newfile.txt。在重命名完成后打印输出 File renamed

删除文件

在 Node.js 文件系统模块中使用 fs.unlinkSync() 方法可以同步地删除文件。

const fs = require('fs');
fs.unlinkSync('file.txt');

在上述代码中,我们通过 fs.unlinkSync() 方法删除了 file.txt 文件。

同样,你也可以使用 fs.unlink() 方法以异步方式删除文件。

const fs = require('fs');
fs.unlink('file.txt', function(err) {
  if (err) throw err;
  console.log('File deleted');
});

在上述代码中,我们使用 fs.unlink() 方法以异步方式删除了 file.txt 文件。在删除成功后打印输出 File deleted

判断文件是否存在

在 Node.js 文件系统模块中使用 fs.existsSync() 方法可以同步地判断文件是否存在。

const fs = require('fs');
const exists = fs.existsSync('file.txt');
console.log(`File exists: ${exists}`);

在上述代码中,我们通过 fs.existsSync() 方法判断了 file.txt 文件是否存在,并打印输出该文件是否存在的信息。

同样,你也可以使用 fs.exists() 方法以异步方式判断文件是否存在。

const fs = require('fs');
fs.exists('file.txt', function(exists) {
  console.log(`File exists: ${exists}`);
});

在上述代码中,我们使用 fs.exists() 方法以异步方式判断了 file.txt 文件是否存在,并打印输出该文件是否存在的信息。

读取文件夹

在 Node.js 文件系统模块中使用 fs.readdirSync() 方法可以同步地读取文件夹中的文件列表。

const fs = require('fs');
const files = fs.readdirSync('.');
console.log(files);

在上述代码中,我们通过 fs.readdirSync() 方法读取了当前文件夹中的文件列表,并打印输出这些文件的名称。

同样,你也可以使用 fs.readdir() 方法以异步方式读取文件夹中的文件列表。

const fs = require('fs');
fs.readdir('.', function(err, files) {
  if (err) throw err;
  console.log(files);
});

在上述代码中,我们使用 fs.readdir() 方法以异步方式读取当前文件夹中的文件列表,并打印输出这些文件的名称。

创建文件夹

在 Node.js 文件系统模块中使用 fs.mkdirSync() 方法可以同步地创建文件夹。

const fs = require('fs');
fs.mkdirSync('folder');

在上述代码中,我们通过 fs.mkdirSync() 方法创建了一个名为 folder 的文件夹。

同样,你也可以使用 fs.mkdir() 方法以异步方式创建文件夹。

const fs = require('fs');
fs.mkdir('folder', function(err) {
  if (err) throw err;
  console.log('Folder created');
});

在上述代码中,我们使用 fs.mkdir() 方法以异步方式创建了一个名为 folder 的文件夹。在创建完成后打印输出 Folder created

删除文件夹

在 Node.js 文件系统模块中使用 fs.rmdirSync() 方法可以同步地删除文件夹。

const fs = require('fs');
fs.rmdirSync('folder');

在上述代码中,我们通过 fs.rmdirSync() 方法删除了名为 folder 的文件夹。

同样,你也可以使用 fs.rmdir() 方法以异步方式删除文件夹。

const fs = require('fs');
fs.rmdir('folder', function(err) {
  if (err) throw err;
  console.log('Folder deleted');
});

在上述代码中,我们使用 fs.rmdir() 方法以异步方式删除了名为 folder 的文件夹。在删除成功后打印输出 Folder deleted

总结

以上就是 Node.js 文件系统模块的完整参考,你可以使用其中的方法来对文件系统进行增、删、改、查操作,从而实现对文件系统的控制。记住,在使用文件系统模块时,要注意异步和同步方法的区别,并注意正确使用异常处理和回调函数,以保证程序运行的正确性。