1 let fs = require('fs');
2
3 2. 同步读取
4 let fd = fs.readFileSync(__dirname + '/source/a.txt');
5 console.log(fd);
6 console.log(fd.toString());
7
8 console.log('后续的操作');
9
10 3. 异步读取
11 fs.readFile(__dirname + '/source/a.txt', (err, data)=>{
12 if(!err){
13 console.log(data);
14 console.log(data.toString());
15 }
16 });
17 console.log('后续的操作');
1 let fs = require('fs');
2
3 // 1. 打开文件
4 let fd = fs.openSync(__dirname + '/source/b.txt', 'w');
5 console.log(fd);
6
7 // 2. 同步写入内容
8 fs.writeFileSync(fd, '哈哈哈!');
9
10 // 3. 保存并退出
11 fs.closeSync(fd);
12
13 // 4. 后续操作
14 console.log('后续的操作');
1 let fs = require('fs');
2
3 // 1. 打开文件
4 fs.open(__dirname + '/source/c.txt', 'a', (err, fd) => {
5 if (!err) {
6 // 2. 写入文件
7 fs.writeFile(fd, '小撩漂亮!哈哈哈哈' + Date.now() + '
', (err)=>{
8 if(!err){
9 console.log('写入文件成功');
10 }else {
11 throw err;
12 }
13 });
14
15 // 3. 关闭文件
16 fs.close(fd, (err)=>{
17 if(!err){
18 console.log('文件已经保存并关闭!');
19 }else {
20 throw err;
21 }
22 })
23 }
24 });
25
26 // 后续操作
27 console.log('后续操作');
1 let fs = require('fs');
2
3 let copy = (src, target, callBack)=>{
4 fs.readFile(src, (err, data)=>{
5 if(!err){ // 读取成功
6 fs.writeFile(target, data, (err, data)=>{
7 if(!err){ // 写入成功
8 callBack && callBack(err, data);
9 }else {
10 throw err;
11 }
12 });
13 }
14 });
15 };
16
17 copy(__dirname + '/source/b.txt', __dirname + '/source/d.txt', (err)=>{
18 if(!err){
19 console.log('拷贝成功!');
20 }
21 });
1 let fs = require('fs');
2
3 // 1. 读取图片
4 /*
5 fs.readFile('C:/Users/yejianhua/Desktop/girl.jpg', (err, data)=>{
6 if(!err){
7 // 2. 写入图片文件
8 fs.writeFile(__dirname + '/source/girl.jpg', data, (err)=>{
9 if(err) throw err;
10 console.log('写入成功');
11 });
12 }
13 });
14 */
15
16
17 fs.readFile('C:/Users/yejianhua/Desktop/lk.mp4', (err, data)=>{
18 console.log(data);
19 if(!err){
20 // 2. 写入图片文件
21 fs.writeFile(__dirname + '/source/lk.mp4', data, (err)=>{
22 if(err) throw err;
23 console.log('写入成功');
24 });
25 }
26 });
1 let fs = require('fs');
2
3 // 1. 创建读写流
4 let rs = fs.createReadStream('C:/Users/yejianhua/Desktop/lk1.mp4');
5 let ws = fs.createWriteStream(__dirname + '/source/lk888.mp4');
6
7 // 2. 监听流的打开
8 rs.once('open', ()=>{
9 console.log('写入流已经打开了~');
10 });
11
12 ws.once('open', ()=>{
13 console.log('读入流已经打开了~');
14 });
15
16 // 3. 监听data
17 rs.on('data', (data)=>{
18 console.log(data);
19 ws.write(data);
20 });
21
22 // 4. 监听流的关闭
23 rs.once('end', ()=>{
24 console.log('读入数据已经完成~');
25 });
26
27 rs.once('close', ()=>{
28 console.log('读入数据通道关闭~');
29 });
let fs = require('fs');
// 1. 创建读写流
let rs = fs.createReadStream('C:/Users/yejianhua/Desktop/lk1.mp4');
let ws = fs.createWriteStream(__dirname + '/source/lk999.mp4');
// 2. 创建管道
rs.pipe(ws);
1 let fs = require('fs');
2
3
4
5
6 // 1. 创建读写流
7 let rs = fs.createReadStream('C:/Users/yejianhua/Desktop/lk1.mp4');
8 let ws = fs.createWriteStream(__dirname + '/source/lk000.mp4');
9
10 rs.on('data', (data)=>{
11 let flag = ws.write(data);
12 console.log(flag);
13 // 判断
14 if(!flag){
15 // 暂停
16 rs.pause();
17 }
18 });
19
20 ws.on('drain', ()=>{
21 // 继续读取流
22 rs.resume();
23 });
24
25 rs.on('end', ()=>{
26 ws.end();
27 });
28
29 自己写方法实现pipe功能