Node.js文件系统-文件操作(一)

本篇介绍关于文件的操作:打开、读取、写入以及关于文件信息的获取。

1.打开:文件打开有多种模式,也有同步和异步的区分。

/**
 * 文件操作:打开、读取、写入以及文件信息的获取
 */
const fs = require("fs");
const path = require("path");

//目标文件
var targetFilePath = path.join(__dirname,"HelloWorld.txt");

//【同步】打开文件,以读写的模式打开文件
if(fs.existsSync(targetFilePath))
{
    var fd = fs.openSync(targetFilePath,"r+");
    console.log("文件:",targetFilePath,"打开成功!");
}else
{
    console.log("文件:",targetFilePath,"不存在!");
}

//【异步】文件打开,以读写的模式打开文件,如果文件不存在则抛出异常
fs.open(targetFilePath,"r+",(err,fd)=>{
   if(err)
   {
       return console.error(err);
   }

   console.log("文件:",targetFilePath,"打开成功!");
});


 运行结果如下:

上面是2种打开文件的方式,究竟是用同步或异步方式打开文件,视情况而定。

2.文件信息获取:fs的Stats对象提供了关于当前文件的详细信息。也分同步和异步方式。

/**
 * 文件操作:打开、读取、写入以及文件信息的获取
 */
const fs = require("fs");
const path = require("path");

//目标文件
var targetFilePath = path.join(__dirname,"HelloWorld.txt");

//【同步】打开文件,以读写的模式打开文件
if(fs.existsSync(targetFilePath))
{
    var fd = fs.openSync(targetFilePath,"r+");
    console.log("[同步]文件:",targetFilePath,"打开成功!");

    var stats = fs.statSync(targetFilePath);
    console.log("stats对象:",stats);

}else
{
    console.log("文件:",targetFilePath,"不存在!");
}

//【异步】文件打开,以读写的模式打开文件,如果文件不存在则抛出异常
fs.open(targetFilePath,"r+",(err,fd)=>{
   if(err)
   {
       return console.error(err);
   }

   console.log("[异步]文件:",targetFilePath,"打开成功!");

   //异步方式获取文件信息
   fs.stat(targetFilePath,(err,stats)=>{
        if(err) throw err;
        
        console.log("stats对象:",stats);
        console.log("是块设备?",stats.isBlockDevice());
        console.log("是字符设备?",stats.isCharacterDevice());
        console.log("是目录?",stats.isDirectory());
        console.log("是文件?",stats.isFile());
        console.log("是套接字?",stats.isSocket());
        console.log("文件大小:",stats.size);
        console.log("文件创建时间:",stats.birthtime);
   });
});


运行结果如下:

本篇主要介绍文件打开和文件信息获取,关于文件其余操作会在新的文章做介绍!

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Data菌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值