Node 导入文件系统模块(fs)语法如下所示:
let fs = require("fs")
目录结构:
F:\phpstudy_pro\WWW\node.js\demo 目录下:
demo |- fs.js |- index.html |- text.txt
fs.readFile() 方法, 用于异步读取指定文件内容
fs.readFile(path[, options], callback);
index.html 文件到代码如下:
<h1>我的第一个标题</h1>
fs.js 文件代码如下:
// 引入 fs 文件系统模块 let fs = require("fs"); // 异步读取 文件 let file_content = fs.readFile('index.html','utf-8', function (err, data) { // err 返回 错误信息 if (err) { return console.error('当前文件不存在'); } // 输出读取数据 // data 返回成功信息 console.log(data.toString()); });
在 demo 目录 下 代码执行:
$ node fs.js <h1>我的第一个标题</h1>
fs.writeFile() 方法, 用于异步写入文件内容
fs.js 文件代码如下:
// 引入 fs 文件系统模块 let fs = require("fs"); /** * 异步写入文件 * fs.writeFile(file, data[, options], callback) * @file 写入文件名 * @data 写入数据 * @options @encoding <string> | <null> Default: 'utf8' @mode <integer> Default: 0o666 @flag <string> See support of file system flags. Default: 'w'. @signal <AbortSignal> allows aborting an in-progress writeFile @callback 回调函数 @err 如果写入失败,将返回 err 对象,反之则返回null */ fs.writeFile('text.txt','你好node.js','utf-8',(err)=>{ // err 对象存在表示 ,文件写入失败 if(err){ return console.error('文件写入失败'); } console.log('文件写入成功'); });
在 demo 目录 下 代码执行:
$ node fs.js 文件写入成功
text.txt 文件内容如下:
你好node.js
案例练习
目录结构:
demo1 |- fs_demo.js + |- /file + |- study.txt + |- study-ok.txt
使用 fs 文件模块 ,将 study.txt 文件考试成绩数据, 整理到 study-ok 文件中去。
整理前: study.txt 成绩数据 如下:
小红=99 小明=80 小刚=100 小黄=70 小绿=85 小黑=40 小白=65
整理后:study-ok 成绩输入如下:
小红:99 小明:80 小刚:100 小黄:70 小绿:85 小黑:40 小白:65
代码练习:
fs_demo.js 代码如下:
// 引入 fs 文件模块 let fs = require("fs"); // 异步读取文件内容 fs.readFile(__dirname+"/file/study.txt",'utf-8',function(err,data){ if(err){ return console.log("file目录下study.txt 文件不存在"); } // 把字符串 分割成 数组 let arrold = data.toString().split(" "); let arrNew = []; arrold.forEach((value)=>{ arrNew.push(value.replace("=",":")); }); // 拼接字符串 let str = arrNew.join("\n"); // 写入文件 fs.writeFile(__dirname+"/file/study-ok.txt",str,function(err){ if(err){ return console.error(filepath_ok+'文件写入失败'); } console.log("文件写入成功"); }); });
运行文件:
F:\phpstudy_pro\WWW\node.js\demo1>node fs_demo.js 文件写入成功