Node.js fs文件系统相关操作
Posted 开到荼蘼223's
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Node.js fs文件系统相关操作相关的知识,希望对你有一定的参考价值。
Node.js文件系统
在Node.js中fs模块提供一组文件操作API用于文件系统进行交互,fs模块支持FS常量,包括文件可访问性、文件复制、文件打开、文件类型和文件模式的常量。
fs模块共有五大类
- fs.Dirent 指示文件类型
- fs.FSWatcher 监视文件
- fs.ReadStream 读取流
- fs.WriteStream 写入流
- fs.Stats 文件的信息
fs模块包含同步文件操作和异步文件操作两大类API方法,大多数文件操作提供同步和异步两种方式,异步操作方法或函数的最后一个参数总是一个回调函数.异步操作方法支持同时处理多个任务,阻塞少、性能高、速度快,同步操作将阻塞整个进程,直到所有任务完成。
同步方法:方法名带有Sync后缀
异步方法:方法名不带由Sync后缀,最后一个参数都是回调函数
fs基本操作
异步读取文件
fs.readFile(path[, options], callback)
异步操作
//异步读取文件
const fs = require('fs');
fs.readFile('e:/N/world.txt',(err,data)=>{
if(err){
console.log(err);
// throw err;
}
console.log('文件内容是:'+data.toString());
})
console.log('----over-----');
同步读取文件
fs.readFileSync(path[, options])
同步操作
const fs = require('fs');
var data = fs.readFileSync('e:/n/world.txt');
console.log('文件的内容是:'+data.toString());
console.log('----over-----');
文件重命名
fs.rename(oldpath,newpath, callback)
异步
// 导入fs模块
const fs = require('fs');
fs.rename('e:/N/word.txt','e:/N/word13.txt',(err)=>{
if(err){// 重命名错误
console.log(err);
};
console.log('重命名成功');
})
console.log('---------');
fs.renameSync(oldpath,newpath)
同步
const fs = require('fs');
fs.renameSync('e:/N/word.txt','e:/N/word13.txt');
检查文件属性
fs.stat(path[, options], callback)
异步操作
stats.isFile() 如果 fs.Stats 对象描述普通的文件,则返回 true。
stats.isDirectory() 如果 fs.Stats 对象描述文件系统目录,则返回 true。
const fs = require('fs');
fs.stat('e:/n/world.txt',(err,stats)=>{
if(err){
throw err;
}
console.log('是否是文件:',stats.isFile()); //true
console.log('是否是目录:',stats.isDirectory()); //false
})
fs.statSync(path[, options])
同步操作
const fs = require('fs');
var stats = fs.statSync('e:/n/world.txt');
console.log('是否是文件:',stats.isFile()); //true
console.log('是否是目录:',stats.isDirectory()); //false
文件模式
文件模式即文件权限,fs模块遵循POSIX文件操作规范,使用类Unix系统的权限表示方法。
访问权限
文件系统标识
打开文件
fs.open(path, '文件标志符', callback)
异步操作
在Node.js中每操作一个文件,文件描述符都是会自动递增的,文件描述符一般从3开始
const fs = require('fs');
console.log("准备打开文件");
//r+表示以读写模式打开,fd为返回的文件描述符
fs.open('demo.txt', 'r+', function(err, fd) {
if (err) {
return console.error(err);
}
console.log("文件打开成功!");
});
fs.openSync('文件名',文件标记符)
同步操作
文件内容追加
fs.appendFile(path,'追击内容')
fs.appendFile('e:/n/world.txt','hello world',(err)=>{
if(err){
throw err
}
console.log('文件追加内容成功')
})
创建目录
fs.mkdir(path[, options], callback)
异步创建目录
fs.mkdir('e:/n/world',{recursive:true},(err)=>{
if(err ) throw err;
})
删除目录
fs.rmdir(path, callback)
异步删除目录
fs.rmdir('e:/n/world',(err)=>{
if(err) throw err
})
读取目录内容
fs.readdir(path[, options], callback)
异步读取目录内容
fs.readdir('e:/Node1',(err,files)=>{
if(err) throw err;
files.forEach((file)=>{
console.log(file);
});
});
以上是关于Node.js fs文件系统相关操作的主要内容,如果未能解决你的问题,请参考以下文章