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系统的权限表示方法。

访问权限
faw
文件系统标识
在这里插入图片描述

打开文件
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);
    });
});
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值