Node.js-文件读取输入
fs模块(操作文件的模块)
- 读取
- fs.readFile(path[, options], callback);
- []里面 是可选参数,表示以什么样的编码 格式读取
- path是路径
- callback表示读取完成后的回调函数
例子
fs.readFile (‘./files/11.txt’, ‘utf-8’, function(err, dataStr) {
console.log(err); //成功则为null
console.log(dataStr);
})
判断是否读取成功
if(err)
{文件读取失败的信息}
文件读取成功的信息
- 写入
- fs.writeFile(file, data[, options], callback)
- file 指定一个文件路径的字符串,表示文件的存放路径
- data必选参数,表示要写入的内容,为字符串
- [, options] 可选参数,表示以什么格式写入文件
- callback写入完成后的回调函数
例子
fs.writeFile(‘./files/2.txt’, ‘abcd’, function(err){
console.log(err);
})
- 操作前需要导入模块
const fs = require (‘fs’);
例题
有学生信息如右:小红=99 小白=100 小黄=70 小黑=66,存放在成绩.txt文档中,写代码读取文件内容然后写入到新的文本文档,格式如下
小红:99
小白:100
小黄:70
小黑:66
- 思路:读取之后将=换成中文的:,空格换成换行符,然后写入新的文档,注意,写入文档要在读取文档的函数内部进行。
- 代码如下(多种方法,这只是我写的其中一种)
const fs = require('fs'); //导入模块
let result;
//读取文档内容
fs.readFile('成绩.txt', 'utf-8', function (err, data) {if (err) {console.log("读取文件失败!!!");return;}/*调用.replace('a', 'b')方法进行替换,表示将该字符串内部的a字符都替换成b字符这里我使用的正则表达式//,g表示全局*/result = data.replace(/=/g, ':').replace(/\s+/g, '\n'); //替换完成后写入新的文档fs.writeFile('new成绩.txt', result, function (err) {if (err) {console.log("文件写入失败!!!");return;}console.log("文件写入成功!");})
})