fs 模块

Node.js 文件系统(fs)模块让你可以访问文件系统。

使用require()方法,导入文件系统模块:

var fs = require('fs');

文件系统模块的常用功能:

  • 读文件
  • 创建文件
  • 更新文件
  • 删除文件
  • 重命名文件

读文件

fs.readFile() 方法用于读取文件。

假设当前目录下有以下HTML文件:

demofile1.html

<html>
<body>
<h1>My Header</h1>
<p>My paragraph.</p>
</body>
</html>

创建一个js文件,读取HTML文件,向客户端返回文件内容:

示例

var http = require('http');
var fs = require('fs');
http.createServer(function (req, res) {
fs.readFile('demofile1.html', function(err, data) {
res.writeHead(200, {'Content-Type': 'text/html'});
res.write(data);
res.end();
});
}).listen(8080);

将上面的代码保存为“demo_readfile.js”文件,使用Node启动该文件:

启动demo_readfile.js:

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

浏览器访问网址: http://localhost:8080

创建文件

创建新文件的方法,有以下几个:

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

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

示例

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

var fs = require('fs');

fs.appendFile('mynewfile1.txt', 'Hello content!', function (err) {
if (err) throw err;
console.log('Saved!');
});

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

示例

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

var fs = require('fs');

fs.open('mynewfile2.txt', 'w', function (err, file) {
if (err) throw err;
console.log('Saved!');
});

fs.writeFile()方法写文件时,如果文件存在,将覆盖原有内容;如果该文件不存在,则会创建一个新文件,写入内容:

示例

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

var fs = require('fs');

fs.writeFile('mynewfile3.txt', 'Hello content!', function (err) {
if (err) throw err;
console.log('Saved!');
});

更新文件

更新文件的方法,有以下几个:

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

fs.appendFile()方法在文件末尾追加内容:

示例

在“mynewfile1.txt”文件的末尾追加“This is my text.”

var fs = require('fs');

fs.appendFile('mynewfile1.txt', ' This is my text.', function (err) {
if (err) throw err;
console.log('Updated!');
});

fs.writeFile()方法替换原有文件内容:

示例

替换文件“mynewfile3.txt”的内容:

var fs = require('fs');

fs.writeFile('mynewfile3.txt', 'This is my text', function (err) {
if (err) throw err;
console.log('Replaced!');
});

删除文件

要删除文件,使用fs.unlink()方法。

使用fs.unlink()方法删除文件:

示例

删除“mynewfile2.txt”:

var fs = require('fs');

fs.unlink('mynewfile2.txt', function (err) {
if (err) throw err;
console.log('File deleted!');
});

文件重命名

要重命名文件,使用fs.rename()方法。

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

示例

重命名”mynewfile1.txt”文件的名称为“myrenamedfile.txt”:

var fs = require('fs');

fs.rename('mynewfile1.txt', 'myrenamedfile.txt', function (err) {
if (err) throw err;
console.log('File Renamed!');
});

上传文件

后续章节介绍。

Node.js 文件系统模块的更多相关文章

  1. Node.js 文件系统fs模块

    Node.js 文件系统封装在 fs 模块是中,它提供了文件的读取.写入.更名.删除.遍历目录.链接等POSIX 文件系统操作. 与其他模块不同的是,fs 模块中所有的操作都提供了异步的和 同步的两个 ...

  2. 运用node的文件系统模块批量修改文件名

      如果我们需要大批量修改一个文件中的名称,比如,删除文件名中的副本时,就可以借助node的文件系统模块,快捷快速的完成. 首先建立一个js文件(changeName.js),代码如下: // 引入f ...

  3. Node.js 文件系统

    Node.js 文件系统封装在 fs 模块是中,它提供了文件的读取.写入.更名.删除.遍历目录.链接等POSIX 文件系统操作. 与其他模块不同的是,fs 模块中所有的操作都提供了异步的和 同步的两个 ...

  4. 33.Node.js 文件系统fs

    转自:http://www.runoob.com/nodejs/nodejs-module-system.html Node.js 提供一组类似 UNIX(POSIX)标准的文件操作API. Node ...

  5. Node.js文件系统、路径的操作详解

    17173 17173 2 75 2014-12-12T05:06:00Z 2014-12-12T05:06:00Z 21 2735 15595 www.17173.com 129 36 18294 ...

  6. Node.JS文件系统解析

    1.Node.js 文件系统 var fs = require("fs") 2.异步和同步 读取文件内容的函数有异步的 fs.readFile() 和同步的 fs.readFile ...

  7. Node.js的模块载入方式与机制

    Node.js中模块可以通过文件路径或名字获取模块的引用.模块的引用会映射到一个js文件路径,除非它是一个Node内置模块.Node的内置模块公开了一些常用的API给开发者,并且它们在Node进程开始 ...

  8. Node.js文件系统、路径的操作函数

    Node.js文件系统.路径的操作函数 目录 Node.js文件系统.路径的操作函数 1.读取文件readFile函数 2.写文件 3.以追加方式写文件 4.打开文件 5.读文件,读取打开的文件内容到 ...

  9. Node.js Web模块

    什么是Web服务器? Web服务器是处理由HTTP客户端发送的,如web浏览器的HTTP请求的软件应用程序,并返回响应于客户端网页. Web服务器通常伴随着图片,样式表和脚本的HTML文档. 大多数W ...

随机推荐

  1. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 按钮:制作一个小按钮

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  2. 大部分政府网站U-mail存在直接拿shell漏洞

    大部分网站政府网站U-mail存在直接拿shell漏洞加入webmail/userapply.php?execadd=333&DomainID=111直接爆出物理地址 然后将 aa' unio ...

  3. Flutter 使用json_model解析json生成dart文件

    一.json_serializable使用步骤 1.集成json_serializable pubspec.yaml 添加以下依赖 dependencies: json_annotation: ^2. ...

  4. 微软结合Veritas,使用Azure云中的混合存储

    导读 在与Symantec(Symantec)脱离10年(通常令人不愉快的关系)一周年之际,Veritas Technologies在2月22日宣布与Microsoft Corp. 建立了多年战略全球 ...

  5. 5G风口之下,NFV为何发展迅速

    导读 5G高带宽.低时延.大容量的接入方式,注定它一定要依赖于跟以往完全不同的专业设备模式来实现,因此也创造了更多的方向和机会.NFV就是其中之一. 5G最大的变化在网络层面,需要底层网络架构形成一种 ...

  6. java SHA1加密算法

    package com.cn.test.rsa; import java.security.MessageDigest; import java.security.NoSuchAlgorithmExc ...

  7. EASYUI TREE得到当前节点数据的GETDATA方法

    function show() { var node = $('#tt-c71').tree('getSelected'); var data = $('#tt-c71').tree('getData ...

  8. [*CTF2019]babyflash

    用JPEXS反编译flash.swf得到441张黑白图片和1个mp3文件 软件下载地址:https://github.com/jindrapetrik/jpexs-decompiler/release ...

  9. 产品原型 UI 设计工具

    产品原型设计工具 Balsamiq Mockups Axure RP 图像处理.绘制工具 ps,AI 跨平台 UI开发工具 QT , Unity3D

  10. gitlab实现webhook触发jenkins 自动,构建,测试,push webhook构子 总结

    最新一直在学习 工作 + 学习 去掉 90%   所以blog  一直没更 真是很不好!  exsi ceph gitlab jenkins harbor k8s  docker-compose ap ...