文件系统 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

Node.js_文件系统 FS的更多相关文章

  1. Node.js 文件系统fs模块

    Node.js 文件系统封装在 fs 模块是中,它提供了文件的读取.写入.更名.删除.遍历目录.链接等POSIX 文件系统操作. 与其他模块不同的是,fs 模块中所有的操作都提供了异步的和 同步的两个 ...

  2. 33.Node.js 文件系统fs

    转自:http://www.runoob.com/nodejs/nodejs-module-system.html Node.js 提供一组类似 UNIX(POSIX)标准的文件操作API. Node ...

  3. Node.js 文件系统模块

    章节 Node.js 介绍 Node.js 入门 Node.js 模块 Node.js HTTP模块 Node.js 文件系统模块 Node.js URL模块 Node.js NPM Node.js ...

  4. node基础学习——操作文件系统fs

    操作文件系统fs 1.在Node.js中,使用fs模块来实现所有有关文件及目录的创建.写入及删除.在fs模块中,所有对文件及目录的操作都可以使用同步与异步两种方法,具有Sync后缀的方法均为同步方法. ...

  5. 运用node的文件系统模块批量修改文件名

      如果我们需要大批量修改一个文件中的名称,比如,删除文件名中的副本时,就可以借助node的文件系统模块,快捷快速的完成. 首先建立一个js文件(changeName.js),代码如下: // 引入f ...

  6. Node.js文件系统、路径的操作详解

    17173 17173 2 75 2014-12-12T05:06:00Z 2014-12-12T05:06:00Z 21 2735 15595 www.17173.com 129 36 18294 ...

  7. Node.JS文件系统解析

    1.Node.js 文件系统 var fs = require("fs") 2.异步和同步 读取文件内容的函数有异步的 fs.readFile() 和同步的 fs.readFile ...

  8. Node.js 文件系统

    Node.js 文件系统封装在 fs 模块是中,它提供了文件的读取.写入.更名.删除.遍历目录.链接等POSIX 文件系统操作. 与其他模块不同的是,fs 模块中所有的操作都提供了异步的和 同步的两个 ...

  9. Node.js文件系统、路径的操作函数

    Node.js文件系统.路径的操作函数 目录 Node.js文件系统.路径的操作函数 1.读取文件readFile函数 2.写文件 3.以追加方式写文件 4.打开文件 5.读文件,读取打开的文件内容到 ...

随机推荐

  1. 为什么wait()方法要放在同步块

    回顾一下,如果wait()方法不在同步块中,代码的确会抛出异常: public class WaitInSyncBlockTest { @Test public void test() { try { ...

  2. java代码调用第三方接口

    一.利用httpclient来字符串参数(url是第三方接口,不带参数,如:http://192.168.16.200:8081/faceInfo/list,param是url后面所要带的参数) pu ...

  3. [物理学与PDEs]第2章第3节 Navier-Stokes 方程组

    1.  当流体的压力 $p$ 及温度 $T$ 改变时, 密度 $\rho$ 变化很小. 此时可近似地把流体看作是不可压的, 而 $\rho=\const$. 如此, 流体动力学方程组中的质量.动量守恒 ...

  4. [物理学与PDEs]第1章第9节 Darwin 模型 9.3 Darwin 模型

    1. $\Omega$ 中 ${\bf A}={\bf A}_T+{\bf A}_L$, 其中 $\Div{\bf A}_T=0$, $\rot{\bf A}_L={\bf 0}$. 若 $$\bex ...

  5. luogu 3084 单调队列+dp

    注意处理出两个数组: r[i] 能覆盖i点的区间的左端点最小值(覆盖左侧最远处) l[i] i不能覆盖的区间的左端点左端点最大值 在该区间内寻找用来更新f[i] 答案的 j 即 l[i]<= j ...

  6. keras的网络结构与网络配置

    摘自: https://www.cnblogs.com/Anita9002/p/8136357.html Keras的网络配置

  7. linux 只查看目录下文件夹

    只显示目录文件夹 ls -F |grep "/$" 显示 目录权限 ls -al |grep "^d" 只显示文件 ls -al |grep "^-& ...

  8. 401AM 随笔~ 322~330 的总结

    web简介:html:超文本标记语言css:层叠样式表 或者css样式JavaScript:一门脚本语言前端:html css javascript<!---->:注释段落与文字p.b加粗 ...

  9. android系统添加预置APP(so库自动释放)

    将APK直接放入系统目录中,会导致APK找不到so文件.正常情况下的安装是使用PackageManager,它会将so文件拷贝到系统读取的so目录(system/lib或system/lib64)下, ...

  10. 1120 机器人走方格 V3(组合数)

    题目实际上是求catalan数的,Catalan[n] = C(2*n,n) / (n+1) = C(2*n,n) % mod * inv[n+1],inv[n+1]为n+1的逆元,根据费马小定理,可 ...