1. 简介
- 文件系统fs(file system),是所有后端都拥有内置模块。
- fs 是 NodeJS 中的内置模块,可以对计算机中的文件进行增删改查等操作。
2. 同步和异步
- 所有的方法都是有同步和异步的形式。
- 异步的方法最后一个参数都是一个回调函数。传给回调函数的参数取决于具体方法,但是回调函数的第一个参数都会被保留给异步。如果操作成功,则第一个参数回事
null
或者undefined
。
3. 文件写入
3.1 简单写入
- fs.writeFile( file , data , [,options] , callback); (异步API)
一共四个参数,必须写的参数: file data callback
file :当前文件的地址(./ 代表当前文件夹)
data :写入的数据内容
callback:当前的回调函数
- fs.writeFileSync( file , data ); (同步API)
- options 选项
encoding
默认值:'utf8'
mode
默认值:0o666
flag
默认值:'w'
mode 的说明
0o666 文件的权限
- 6 所有者的权限
- 6 所属组的权限
- 6 其他人的权限
4 可读
2 可写
1 可执行
777 文件的文件的最高权限
计算方式:
4+2=6 所有者的权限
4+2+1=7 文件的文件的最高权限
flag的说明:
- a append 追加 - - {flag:‘w’}
- w write 写入(会发生覆盖)- - {flag:‘w’}
- r read 只读 - -{flag:‘w’}
注意:
- 尽量不要在 C盘 执行文件写入动作 (有的计算机不支持向C盘中写入文件)
- 如果当文件不存在,写入文件的时候,会自动给我们创建文件
- 如果当文件夹不存在,写入文件的时候,会报错
3.2 流式写入
fs.createWriteStream* path
-
options
- flags 默认值:
'w'
encoding
默认值:'utf8'
mode
默认值:0o666
- flags 默认值:
-
事件监听 open close eg: ws.on(‘open’, function(){});
(path[, options])
//1.引入 fs 模块
let fs = require('fs');
//2.写入流的方法 参数:文件写入路径
let ws = fs.createWriteStream('./index.html');
//3.写入信息
ws.write('白日依山尽,');
ws.write('黄河入海流。');
ws.write('欲穷千里目,');
ws.write('更上一层楼。');
//4.写入关闭
ws.close();
//白日依山尽,黄河入海流。欲穷千里目,更上一层楼。
3.3 写入文件两种方式对比
-
writeFile 简单写入 应对简单的内容写入, 次数较少
-
createWriteStream 应对批量内容写入
3.4 写入文件的场景
- 下载文件
- 安装文件
- 日志(如:Git)
- 数据库
- 网盘
- 编辑器保存文件
- 视频录制