Node.js 文件系统模块

Node.js 就像一个文件服务器

Node.js 文件系统模块让您可以使用计算机上的文件系统。要引用文件系统模块,请使用 require() 方法:

  1. var fs = require('fs');

文件系统模块的常见用法:


读取文件

fs.readFile() 方法用于读取计算机上的文件。

假设我们有以下 HTML 文件(与 Node.js 位于同一文件夹中):

demofile1.html

  1. <html>
  2. <body>
  3. <h2>My Header</h2>
  4. <p>My paragraph.</p>
  5. </body>
  6. </html>

创建一个 Node.js 文件用来读取 HTML 文件并返回内容:

实例
  1. var http = require('http');
  2. var fs = require('fs');
  3. http.createServer(function (req, res) {
  4. <strong> fs.readFile('demofile1.html', function(err, data) {
  5. </strong> res.writeHead(200, {'Content-Type': 'text/html'});
  6. res.write(data);
  7. return res.end();
  8. });
  9. }).listen(8080);

将上述代码保存在名为 "demo_readfile.js" 的文件中,并启动该文件:

启动 demo_readfile.js:

C:\Users\ Your Name >node demo_readfile.js

如果您在计算机上执行了相同的步骤,您将看到与示例相同的结果:

  1. http://localhost:8080

创建文件

文件系统模块具有创建新文件的方法:

  • fs.appendFile()
  • fs.open()
  • fs.writeFile()

fs.appendFile() 方法将指定的内容追加到一个文件。如文件不存在,将创建该文件:

实例

使用 appendFile() 方法创建一个新文件:

  1. var fs = require('fs');
  2. fs.appendFile('mynewfile1.txt', 'Hello content!', function (err) {
  3. if (err) throw err;
  4. console.log('Saved!');
  5. });

fs.open() 方法将 "flag" 作为第二个参数,如果标志是 "w" 表示 "写入",则打开指定的文件进行写入。如果文件不存在,将创建一个空文件:

实例

使用 open() 方法创建一个新的空文件:

  1. var fs = require('fs');
  2. fs.open('mynewfile2.txt', 'w', function (err, file) {
  3. if (err) throw err;
  4. console.log('Saved!');
  5. });

fs.writeFile() 方法替换指定的文件和内容(如果存在)。如果文件不存在,将创建包含指定内容的新文件:

实例

使用 writeFile() 方法创建一个新文件:

  1. var fs = require('fs');
  2. fs.writeFile('mynewfile3.txt', 'Hello content!', function (err) {
  3. if (err) throw err;
  4. console.log('Saved!');
  5. });

更新文件

文件系统模块具有更新文件的方法:

  • fs.appendFile()
  • fs.writeFile()

fs.appendFile() 方法将指定的内容追加到指定文件的末尾:

实例

将 "This is my text." 追加到文件 "mynewfile1.txt" 的末尾:

  1. var fs = require('fs');
  2. fs.appendFile('mynewfile1.txt', ' This is my text.', function (err) {
  3. if (err) throw err;
  4. console.log('Updated!');
  5. });

fs.writeFile() 方法替换指定的文件和内容:

实例

替换文件 "mynewfile3.txt" 的内容:

  1. var fs = require('fs');
  2. fs.writeFile('mynewfile3.txt', 'This is my text', function (err) {
  3. if (err) throw err;
  4. console.log('Replaced!');
  5. });

删除文件

要使用文件系统模块删除文件,请使用 fs.unlink() 方法。

fs.unlink() 方法删除指定的文件:

实例

删除 "mynewfile2.txt":

  1. var fs = require('fs');
  2. fs.unlink('mynewfile2.txt', function (err) {
  3. if (err) throw err;
  4. console.log('File deleted!');
  5. });

文件重命名

要使用文件系统模块重命名文件,请使用 fs.rename() 方法。

fs.rename() 方法重命名指定文件:

实例

将 "mynewfile1.txt" 文件重命名为 "myrenamedfile.txt":

  1. var fs = require('fs');
  2. fs.rename('mynewfile1.txt', 'myrenamedfile.txt', function (err) {
  3. if (err) throw err;
  4. console.log('File Renamed!');
  5. });

上传文件

您也可以使用 Node.js 将文件上传到您的计算机。

实现方法将在后面的 Node.js 上传文件 章节中详细讲解。