fs模块

270 阅读2分钟

1. fs模块

  • 在Node.js中,使用fs模块来实现所有有关文件及目录的创建、写入及删除操作。
  • 在fs模块中,所有的方法都分为同步和异步两种实现。
  • 具有sync后缀的方法为同步方法,不具有sync后缀的方法为异步方法。

2.部分前端常用方法

读取文件

readFile()

语法:fs.readFile(path[, options], callback)
  • options

    • encoding
    • flag flag 默认 = 'r'

示例

//对文件进行操作的模块
var fs=require("fs")
var path=__dirname
fs.readFile(path,(err,data)=>{
	console.log(path)
})

readFileSync()

语法:fs.readFileSync(path[, options])

示例

//对文件进行操作的模块
var fs=require("fs")
var path=__dirname
let str=fs.readFileSync(path+"/index.js")
console.log(str); //buffer
}) 

readFileSync方法的第一个参数是文件路径,第二个参数可以是一个表示配置的对象,也可以是一个表示文本文件编码的字符串。默认的配置对象是{ encoding: null, flag: 'r' },即文件编码默认为null,读取模式默认为r(只读)。如果第二个参数不指定编码(encoding),readFileSync方法返回一个Buffer实例,否则返回的是一个字符串。

写入文件

writeFile()

语法:fs.writeFile(file, data[, options], callback)
  • options

    • encoding
    • flag flag 默认 = 'w'
    • mode 读写权限,默认为0666

示例

  • 创建并写入文件信息:如果文件不存在 就会创建
  • 如果文件夹不存在 就会报错
let fs = require('fs');
//写入文件信息
fs.writeFile(__dirname+"/src/a.txt","hello",function(err){
	console.log(err)
})

writeFileSync()

语法:fs.writeFileSync(file, data[, options])

它的第一个参数是文件路径,第二个参数是写入文件的字符串,第三个参数是文件编码,默认为utf8。

追加文件

语法:fs.appendFile(file, data[, options], callback)

示例

fs.appendFile('./1.txt',Date.now()+'\n',function(){
  console.log('ok');
})

删除文件

语法:fs.unlink(path,callback)

示例

fs.unlink(__dirname+"/src/a.txt",(err)=>{
	console.log(err)
})

移动/重命名文件或目录

语法:fs.rename(oldPath, newPath, callback);

oldPath, 原目录/文件的完整路径及名;
newPath, 新目录/文件的完整路径及名;
如果新路径与原路径相同,而只文件名不同,则是重命名 callback(err), 操作完成回调函数;err操作失败对象

移动文件有一个bug:新路径和旧路径必须是同一个根盘

拷贝文件

语法:fs.copy(oldPath, newPath, callback);

oldPath, 原文件的完整路径;
newPath, 新文件的完整路径;
callback(err), 操作完成回调函数;err操作失败对象

拷贝文件以后两个文件都会存在磁盘中