Node.js_文件系统 FS

时间:2021-12-17 01:57:44

文件系统 FS——File System

所谓的文件系统,就是对计算机中的文件进行增、删、查、改等操作

是一个服务器的基础

node 通过核心 FS 模块来操作文件系统

  • 简单写

// 1. 导入 fs 模块

  • const fs = require('fs');

// 2. 简单写入文件

  • fs.writeFile('./hello.txt',
    'Hello File System!',
    {
    encoding:'utf-8',
    mode: 0o666, // 4 2 0 可读 可写
    flag: 'a' // 追加写操作
    },
    err=>{
    // 3. 判断方法是否出错
    if(err){ // 如果出错 err 为一个对象
    console.log(err);
    }else{
    console.log('文件写入成功');
    };
    }
    );
  • 流式写(可以一点一点写入内容)

// 1. 导入 fs 模块

  • const fs = require('fs');

// 2. 创建可写流

  • const ws = fs.createWriteStream('./test.txt');
    
    // 绑定监听事件,监听 可写流 有没有开始工作
    ws.on('open', ()=>{
    console.log('开始写了!');
    }); // 绑定监听事件,监听 可写流 有没有开始工作
    ws.on('close', ()=>{
    console.log('写完了!');
    }); // ws.close(); 会立即关闭 写入流,即使 文件流 内容还没有完全写入文件
    // ws.end(); // 等待 写入流 内容全部写入文件,再关闭

// 3. 往 可写流 写入内容

  • ws.write('丫丫啦个呸的... ...');
    ws.write('啥玩意儿?!');

// 4. 关闭写入流

  • ws.end();
  • 简单读

// 1. 导入 fs 模块

  • const fs = require('fs');

// 2. 读文件

  • fs.readFile(
    './package.json',
    (err, bufData)=>{
    if(err){
    console.log(err);
    }else{
    console.log(bufData.toString());
    };
    }
    );
  • 流式读(可以一点一点读)

// 1. 导入 fs 模块

  • const fs = require('fs');

// 2. 创建可读流

  • const rs = fs.createReadStream('D:\\Audiio\\test.mp4');
    
    // 绑定监听事件
    rs.on('open', ()=>console.log('开始读!'));
    rs.on('close', ()=>console.log('开始读!')); // 绑定读取文件事件
    rs.on('data', bufData=>{
    console.log('开始读!');
    });
  • 文件复制
  • const {createReadStream, createWriteStream} = require('fs');
    
    const ws = createWriteStream('./testCopy.mp4');
    
    // 绑定监听事件,监听 可写流 有没有开始工作
    ws.once('open', ()=>{
    console.log('开始写了!');
    }); // 绑定监听事件,监听 可写流 有没有开始工作
    ws.once('close', ()=>{
    console.log('写完了!');
    }); const rs = createReadStream('D:\\Audiio\\test.mp4'); // 绑定监听事件
    rs.once('open', ()=>console.log('开始读!'));
    rs.once('close', ()=>{
    console.log('读完了!');
    ws.end(); // 等待 写入流 内容全部写入文件,再关闭
    }); // 绑定读取文件事件
    rs.on('data', bufData=>{
    console.log('读ing');
    ws.write(bufData);
    });
  • 管道 读写 数据流
  • const {createReadStream, createWriteStream} = require('fs');
    
    const ws = createWriteStream('./testCopy.mp4');
    
    const rs = createReadStream('D:\\Audiio\\test.mp4');
    
    rs.pipe(ws);

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5