• 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() + '
    ', (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功能
  • 相关阅读:
    Javascript(js)分页程序
    Erlang gb_trees
    ASP.NET MVC 扩展之 JsonpResult ,用来提供轻量级跨域调用服务
    facebook folly编译脚本
    开源项目 XDD
    ObjectiveC——消息、Category和Protocol
    Lua编译执行与错误
    ASP.NET MVC 4 RC的JS/CSS打包压缩功能
    web插件化
    精益企业应用平台
  • 原文地址:https://www.cnblogs.com/zhangzhengyang/p/11110453.html
Copyright © 2020-2023  润新知