node.js之文件系统fs---笔记三

一句话理解什么是文件系统fs?

node.js中的内置模块,可以对计算机中的文件进行 [ 增删改查 ] 等操作

如何理解文件系统中的同步异步?

简单理解为两种不同的形式 得到的结果是一样的,同步是链式执行 异步是分支执行,,一般情况下只允许操作一次,结构上也有区别 具体看以下内容:

注意:无论是写入、读取还是删除 都需要先引入fs模块
一般格式 let 变量名 = require('fs'),一般情况下变量名都可以写成fs
flag : w 写,覆盖操作
flag : a 追加
flag : r 读取
了解的知识:0x ==》 十六进制 0b ==》二进制 0o ==》 八进制

1,文件系统的写入有两种:

在简单写入的格式:

同步:fs.writeFileSync(file‘路径’, data‘内容’);
eg:fs.writeFileSync('./1.html','还是那么热爱前端');

异步:fs.writeFile(file, data, [,options], callback);
eg:fs.writeFile('./2.html','一个学画画的美术猿',err =>{
if(err) throw err; //这里的err 实际是error 错误的意思
})

在流式写入的格式:

`格式: fs.createWriteStream(path[, options]);
eg:
//1.引入 fs 模块
let fs = require('fs');

//2.创建写入流对象
let ws = fs.createWriteStream('./5.html',{flag:'w'});

//3.调用写入的方法
ws.write('青春不常在');
ws.write('抓紧谈恋爱');
ws.write('想都不用想');
ws.write('那就现在吧');

//4.关闭写入流
ws.close();`

两种写入方式相同点:结果都一样

两种写入方式不同点:简单写入相对来讲简单一点 次数较少 而流式写入则可以运用于批量内容的写入

2,文件系统的读取有两种:

简单读取:

格式:fs.readFile(file, function(err, data){})----异步
eg; fs.readFile('./1.html',(err,data) => { // err 如果读取失败,返回一个对象,对象中有错误的信息 // err 如果读取成功,返回 null if(err) throw err; // 读取成功,打印数据 console.log(data.toString());

fs.readFileSync(file)----同步
eg;let result = fs.readFileSync('./2.html'); console.log(result.toString());

流式读取:

格式: fs.createReadStream();
eg:
`//1. 引入 fs 模块
let fs = require('fs');

//2.创建读取流对象
let rs = fs.createReadStream('./1.html');

//3.绑定事件
rs.on('data',chunk => {
//data 是事件的名字:读取文件的事件名
//chunk 块儿 ,读取文件时,是一段一段读取的(64KB = 65536 字节)
// console.log(chunk.toString());
// console.log(chunk.length);
});
console.log('正在读取文件');
//读取流创建 打开文件的时候 执行
rs.on('open',() =>{
console.log('打开文件');
});
//读取流创建 关闭文件的时候 执行
rs.on('close',() =>{
console.log('关闭文件');
})
//读取完 文件的内容后 执行
rs.on('end',() =>{
console.log('文件读取完成');
})

//执行的顺序是open data end close 但是写入的时候不分顺序`

3,文件系统的删除有两种:

fs.unlink('./test.log', function(err){});---->异步
fs.unlinkSync('./move.txt');-----》同步
//只测试一次

补充部分:

文件夹操作:

` //1.引入 fs 模块
let fs = require('fs');

//创建文件夹
// fs.mkdir('./新建文件夹',err => {
// if(err) throw err;
// console.log('创建成功了');
// })
// //只执行一次

//读取文件夹
// fs.readdir('./',(err,data)=>{
// if(err) throw err;
//
// //data 文件夹下的文件列表
// console.log(data);
// })

// fs.readdir('c:/',(err,data) =>{
// if(err) throw err;
// console.log(data);
// })

//删除文件夹
// fs.rmdir('./新建文件夹',err => {
// if(err) throw err;
// console.log('删除成功了');
// })

//rmdir 在删除的时候,如果是空文件夹,会直接删除
//rmdir 在删除的时候,如果是 非空文件夹 ,则报错
//不管是否是空文件夹,都需删除 recursive:true
fs.rmdir('./file',{recursive:true},err => {
if(err) throw err;
console.log('删除成功了');
})`

posted @ 2021-08-18 20:32  拾呓  阅读(150)  评论(0)    收藏  举报