node 学习笔记 - fs 文件操作

跟着网上教程走,第一篇是 process 的一些操作,我觉得除了 process.argv 获取命令行参数, process.env 获取环境变量,其他不太常用,至少我现阶段用不到,所以只是简单的测试了下,就直接到了 File System 部分。

fs 是文件操作,我之前写爬虫,以及最后的文件数据整理,都是 php 做的,现在学了 node 之后肯定尽量 node 上了。
下面我就简单记录下常用的方法,反正用法,中文文档,百度上满大街都是。

结合 File System 官网文档来学习。

Sync 后缀方法

打开文档发现每个方法都有两个,其中有一个就多了个 Sync 后缀。
什么是同步异步,事件驱动,非阻塞I/O 这些学术性的东西我就不多说了,自行搜索,这里只说他们最明显的区别。
比如 fs.rename 和 fs.renameSync
前者是要传入回调参数,当完成或遇到错误后会执行回调函数,而 Sync 同步方法,如果遇到错误了,直接抛出,导致js中断。

fs.rename('123.txt', '321.txt', function (err) {
  if (err) {
    console.log(err); // 遇到错误
  }
  console.log('完成');
});
try {
  fs.renameSync('123.txt', '321.txt');
  console.log('完成');
} catch(err) {
  console.log(err); // 遇到错误
}

就是这么个区别, 一个和谐报错,一个要手动 catch 错误信息。

文件读写

fs.readfs.write 和 fs.readFilefs.writeFilefs.appendFile 前者比较底层,需要结合 fs.open 打开文件得到文件句柄,然后基于文件句柄读写。
这不是很常用,所以直接说 fs.readFilefs.writeFilefs.appendFile 这三个方便的。

var fs = require('fs');

// 写入数据, 文件不存在会自动创建
fs.writeFile('123.txt', 'Hello Node!', function (err) {
  if (err) throw err;
  console.log('写入完成');
});

// 添加数据
fs.appendFile('123.txt', '添加数据,默认 utf8 格式', function (err) {
  if (err) throw err;
  console.log('添加完成');
});

// 读取数据
fs.readFile('123.txt', function (err, data) {
  if (err) throw err;
  console.log(data.toString());
});

好了,简洁明了,写入,添加,读取,都OK了。

不过我想大家也会跟我一样会有个疑问,fs.readFile 是全部载入,那如果文件很大怎么破?
而且没有按行读取,很多情况下会很麻烦。

这个就之后 Stream 部分细说了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值