node的fs模块

 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() + '\n', (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功能

 

posted @ 2019-06-30 17:14  疏影横斜水清浅  阅读(259)  评论(0编辑  收藏  举报