node系统模块之fs模块

fs是filesystem的缩写,该模块提供本地文件的读写能力
文件 I/O 是对标准 POSIX 函数的简单封装。
所有的方法都有异步和同步的形式。

简单的说:fs模块提供了读写文件的方法,并且这些方法都可以选择同步或者异步;有了读写的能力,那么就可以从服务器的磁盘上拿到文件,返还给前台也页面
什么是同步和异步呢?以前听过一个老师说了等人吃饭的例子,感觉不是那么恰当吧;
拿ajax举个例子
我们都知道浏览器解析代码是从上往下的,路上遇到了一个ajax小姐,这为小姐跟后台打call的时间很长,如果浏览器先生继续等着这位小姐打call完毕,再往下解析,这个是同步;如果一看ajax在和后台打call,那浏览器就不等她了,写着往下去看其它的代码,等ajax挂掉电话了,浏览器在去回过头去看她,这个是异步;
而读取文件,你可以等文件读取完毕,这个是同步,用的是readFile()
不等他读完,就往下执行,这个是异步;用的是fs.readFileSync(fileName, ‘utf8’);


  • 先说说读文件是怎么操作的:
fs.readFile(file_path,(error,data)=>{
    //....用于异步读文件
})
//第一个参数是文件路径,第二个是回掉函数
//回掉函数有两个参数:第一个参数指的是读取文件失败情况,
//              第二个参数指的是读取成功后的操作

readFile方法的第一个参数是文件的路径,可以是绝对路径,也可以是相对路径。注意,如果是相对路径,是相对于当前进程所在的路径(process.cwd()),而不是相对于当前脚本所在的路径。

另外说明一下:如果不适用框架或者其他方法,读取到的数据是一堆二进制码;

比如我读取一个txt文档,如下图所示
这里写图片描述

这里写图片描述
有什么可以提供的方法呢?toString()

const fs = require('fs');

fs.readFile('./www/a.txt',function (err, data){
    if(err){
      console.log('读取失败');
    }else{
      console.log((data.toString()));
    }
  })
  • 写文件的操作
    writeFile方法用于异步写入文件。writeFileSync方法用于同步写入文件。
fs.readFile('./image.png', function (err, buffer) {
  if (err) throw err;
  process(buffer);
});

上面代码中,writeFile方法的第一个参数是写入的文件名,第二个参数是写入的字符串,第三个参数是回调函数。

回调函数前面,还可以再加一个参数,表示写入字符串的编码(默认是utf8)。

  • 参照阮一峰的JavaScript的标准参考
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值