node-fs模块总结

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/weixin_45674894/article/details/102667639

fs模块

在nodejs中,提供了fs模块,这是node的核心模块

注意:

  1. 除了global模块中的内容可以直接使用,其余模块都是需要加载的
  2. fs模块不是全局模块,所以需要导入
const fs = require('fs');

读取文件

语法:fs.readFile(path[, options], callback)
第一个参数:读取文件的路径
第二个参数:字符集(带[]表示可传可不传)
第三个参数:回调函数

方式一:不传编码参数

fs.readFile('data.txt', function (err, data) {
  if (err) {
    return console.log(err);
  }
  console.log(data.toString());//获取到buff对象,通过调用toString()转成字符串
});
//没设置编码,此时会返回一个二进制的buffer对象

关于buffer对象

  1. Buffer对象是Nodejs用于处理二进制数据的。
  2. 其实任意的数据在计算机底层都是二进制数据,因为计算机只认识二进制。
  3. 所以读取任意的文件,返回的结果都是二进制数据,即Buffer对象
  4. Buffer对象可以调用toString()方法转换成字符串。

方式二:传编码参数

fs.readFile('data.txt','utf8' function (err, data) {
  if (err) {
    return console.log(err);
  }
  console.log(data);//正常输出字符串
});

写文件

语法:fs.writeFile(file, data[, options], callback)
第一个参数:读取文件的路径
第二个参数:写入的内容
第三个参数:字符集(带[]表示可传可不传)
第四个参数:回调函数

fs.writeFile('data.txt', 'hello world', function(err){
  if(err) {
    return console.log("写入文件失败", err);
  }
  console.log("写入文件成功");
});

注意:

  1. 写文件的时候,会把原来的内容给覆盖掉
  2. 如果找不到写入文件,会默认创建一个文件

追加文件

语法:fs.appendFile(path, data[, options], callback)
第一个参数:读取文件的路径
第二个参数:追加的内容
第三个参数:字符集(带[]表示可传可不传)
第四个参数:回调函数

fs.appendFile('data.txt', '我是追加的内容', function(err){
  if(err) {
    return console.log("追加文件内容失败");
  }
  console.log("追加文件内容成功");
})

注意:

  1. 如果找不到追加内容的文件,会默认创建一个文件

文件同步与异步的说明

fs中所有的文件操作,都提供了异步和同步两种方式

异步方式:不会阻塞代码的执行

//异步方式
var fs = require("fs");

console.log(111);
fs.readFile('data.txt', 'utf8', function(err, data){
  if(err) {
    return console.log("读取文件失败", err);
  }
  console.log(data);
});
console.log("222");

//先输出111 ,在输出222 ,最后输出data

同步方式:会阻塞代码的执行

//同步方式
console.log(111);
var result = fs.readFileSync('data.txt', 'utf8');
console.log(result);
console.log(222);

//先输出111,在输出result,最后输出222

总结:同步操作使用虽然简单,但是会影响性能,因此尽量使用异步方法,尤其是在工作过程中。

其他api

方法 描述
fs.readFile(path, callback) 读取文件内容(异步)
fs.readFileSync(path) 读取文件内容(同步)
fs.writeFile(path, data, callback) 写入文件内容(异步)
fs.writeFileSync(path, data) 写入文件内容(同步)
fs.appendFile(path, data, callback) 追加文件内容(异步)
fs.appendFileSync(path, data) 追加文件内容(同步)
fs.rename(oldPath, newPath, callback) 重命名文件(异步)
fs.renameSync(oldPath, newPath) 重命名文件(同步)
fs.unlink(path, callback) 删除文件(异步)
fs.unlinkSync(path) 删除文件(同步)
fs.mkdir(path, mode, callback) 创建文件夹(异步)
fs.mkdirSync(path, mode) 创建文件夹(同步)
fs.rmdir(path, callback) 删除文件夹(异步)
fs.rmdirSync(path) 删除文件夹(同步)
fs.readdir(path, option, callback) 读取文件夹内容(异步)
fs.readdirSync(path, option) 读取文件夹内容(同步)
fs.stat(path, callback) 查看文件状态(异步)
fs.statSync(path) 查看文件状态(同步)

猜你喜欢

转载自blog.csdn.net/weixin_45674894/article/details/102667639