基础讲解之fs读取

时间:2024-10-05 12:42:49

 文件操作

读取文件:同步&异步

fs读取所有的方法都有、同步与异步的形式

node里关于文档的操作方法基本都给了两份,即同步与异步

使用前导入核心模块   const fs = require('fs');

  1. //重命名 异步
  2. fs.rename("","",function(err){
  3. if(err) throw err;
  4. console.log("重命名成功");
  5. })
  6. //重命名 同步
  7. fs.renameSync("","");

同步

 异步 

写文件(())

效果:删掉文档原内容,写入新内容,如果指定文档不存在,则新建

 追加(())

下图显示的代码实现之后,对于文档末尾追加了相同的文字,即追加操作

 拷贝(())

效果如下面代码结果所示,文档中的内容进行了变化,变成了文档中的文字,实现了拷贝操作

  1. const fs = require('fs');
  2. //copy操作
  3. ("./","./",err => {
  4. if(err){
  5. ("文件拷贝失败,原因是:" + err);
  6. return;
  7. }
  8. ("文件拷贝成功")
  9. })

 

 流操作

流操作一般读取的都是大文件,分为读取流写入流

 读取流

下述代码中实现读取文档中内容,文档中有大量的文字内容,终端显示一共读取了两次,但是真正的作用是可以将大文件进行拼接,第二部分代码执行后,终端显示出文档中的所有文字内容。

  1. const fs = require('fs');
  2. // 大文件进行数据流操作
  3. // 创建读取流
  4. const rs = ("./",{encoding:"utf8"});
  5. rs.on("open", () => {
  6. ("读取流 open")
  7. })
  8. let count = 0;
  9. rs.on("data", chunk => {
  10. // chunk事一个buffer,当前读取的数据片段,二进制数据流
  11. count ++;
  12. (count);
  13. })
  14. rs.on("end", () => {
  15. ("文件读取 end")
  16. })
  17. rs.on("close", () => {
  18. ("读取流 close")
  19. })

  1. const fs = require('fs');
  2. // 大文件进行数据流操作
  3. // 创建读取流
  4. const rs = ("./",{encoding:"utf8"});
  5. rs.on("open", () => {
  6. ("读取流 open")
  7. })
  8. let text = '';
  9. rs.on("data", chunk => {
  10. // chunk事一个buffer,当前读取的数据片段,二进制数据流
  11. // 拼接
  12. text += chunk;
  13. })
  14. rs.on("end", () => {
  15. ("文件读取 end")
  16. (text)
  17. })
  18. rs.on("close", () => {
  19. ("读取流 close")
  20. })

 写入流

  1. const fs = require('fs');
  2. // 写入流
  3. var ws = ("./");
  4. ws.write("天地玄黄,宇宙洪荒");
  5. ws.end();
  6. ws.on("open",() => {
  7. ("写入流 open")
  8. })
  9. ws.on("close", () =>{
  10. ("写入流 close")
  11. })