1.fs模块
readdir()和readdirSync()
该方法将返回一个包含“指定目录下所有文件名称”的数组对象,因此readdir方法只读一层
- 异步读取readdir()
- 同步读取readdirSync()
// fs模块-readdir()和readdirSync()方法
const fs = require("fs");
// readdir() 异步读取数据
fs.readdir("./i18n", (err, files) => {
if (err) {
console.error("err", err);
}
files.forEach((file) => {
console.log("file", file);
});
});
/**
* 打印的结果 :
* file enUS
* file index.js
* file jaJP
* file zhCN
*/
// readdirSync() 同步读取数据
const readdirSync = fs.readdirSync("./i18n");
console.log(readdirSync);
// 打印的结果 : [ 'enUS', 'index.js', 'jaJP', 'zhCN' ]
2.createWriteStream 创建可写流
- [ params:path指定文件的路径 ]
- [ options:可选,是一个JS对象,可以指定一些选项如 ]
1.flags : 指定用什么模式打开文件
- w:代表写
- r:代表读
- r+、w+、a等 2.encoding:指定打开文件时使用编码格式
- utf8:默认
- ascii
- base64 3.fd : 当你指定了这个属性时,createReadableStream会根据传入的fd创建一个流,忽略path.另外你要是想读取一个文件的特定区域,可以配置start、end属性,指定起始和结束(包含在内)的字节偏移
- null:默认 4.mode
5.autoClose : 当发生错误或文件读取结束时会自动关闭文件描述符
- true:默认
/*
@params:path指定文件的路径
@params:options可选,是一个JS对象,可以指定一些选项如:
*/
let option={
flags: 'w',// 指定用什么模式打开文件,’w’代表写,’r’代表读,类似的还有’r+’、’w+’、’a’等
encoding: 'utf8',// 指定打开文件时使用编码格式,默认就是“utf8”,你还可以为它指定”ascii”或”base64”
fd: null,// fd属性默认为null,当你指定了这个属性时,createReadableStream会根据传入的fd创建一个流,忽略path。另外你要是想读取一个文件的特定区域,可以配置start、end属性,指定起始和结束(包含在内)的字节偏移
mode: 0666,
autoClose: true// autoClose属性为true(默认行为)时,当发生错误或文件读取结束时会自动关闭文件描述符
}
let fs = require("fs");
let ws = fs.createWriteStream("1.txt", {
flags: "w",
encoding: "utf8",
start: 0,
highWaterMark: 3,
});
let i = 9;
const write = () => {
let flag = true;
while (flag && i >= 0) {
flag = ws.write(i-- + "-"); //往1.txt写入9876543210
console.log(flag);
}
};
ws.on("drain", () => {
//缓存区充满并被写入完成,处于清空状态时触发
console.log("干了");
write(); //当缓存区清空后我们在继续写
});
write(); //第一次调用write方法
2.path模块
path:模块包含一系列处理和转换文件路径的工具集,通过require('path')可用来访问这个模块。知识点:对window系统,目录分隔为'',对于UNIX系统,分隔符为'/',针对'..'返回上一级,发现多个斜杠或反斜杠时会替换成一个,/,//,\与\都被统一转换为\
- path.extname()获取路径中文件后缀名 如果没有'.',则返回空
- path.normalize(path) 路径解析、得到规范化的格式
- path.format(pathObject) 该方法用于将一个字符串类型的路径转化为一个路径对象(pathObject)。该路径对象当中包括文件目录,文件名,扩展名等。
var _path = path.extname(__dirname + '/test/util you.mp3');
// 结果为:.mp3
var _path = path.normalize(__dirname + '//test/a//b/..//c\\');
// 结果为:D:\others\node\examples\test\a\c\
var _path = path.format(path.format({
root: 'E:\\',
dir: 'D:\\others\\node\\examples/test',
base: 'util you.mp4',
ext: '.mp4',
name: 'util you as me'
} ));
// 结果为:D:\others\node\examples/test\util you.mp4