nodejs文件读写

末蓝、 2023-07-17 02:39 80阅读 0赞

File System (fs文件系统)

  • 得到文件与目录的信息:stat
  • 创建一个目录:mkdir
  • 创建文件并写入内容:writeFile,appendFile
  • 读取文件的内容:readFile
  • 列出目录的东西:readdir
  • 重命名目录或文件:rename
  • 删除目录与文件:rmdir,unlink

用代码展示一下文件file的操作:(首先注意一点,所有文件系统操作都具有同步和异步的形式,此文着重用同步方式;同步比异步多了个Sync)

(1)创建文件

  1. const fs=require('fs');//首先引入fs文件系统内置模块
  2. // 异步方式 文件名 添加内容 回调函数(异步处理)
  3. fs.writeFile('file_one.txt','this is a litter file',function(err){
  4. // do something
  5. // 在node里面,有个错误优先原则,比如说这儿的第一个参数是error
  6. // 比如说磁盘满了,没有创建成功
  7. })
  8. // 同步方式,不用写回调函数
  9. fs.writeFileSync('file_two','this is the second file');

执行:
在这里插入图片描述
结果,在当前目录下新创建了两个文件:
在这里插入图片描述
(2)删除文件

  1. const fs=require('fs');//首先引入fs文件系统内置模块
  2. // 异步,参数:path文件路径 回调函数
  3. fs.unlink('./file_one.txt',function(){
  4. // do something
  5. })
  6. // 同步删除文件
  7. fs.unlinkSync('./file_two.txt');

(3)修改文件的名字

  1. fs.renameSync('log.txt', 'lognew.txt')

(4)追加内容

  1. // 就是在文件最后添加内容
  2. fs.appendFileSync('lognew.txt', 'gp18')

(5)文件内容的读取

  1. let rs=fs.readFileSync('file_one.txt');
  2. console.log(rs);//16进制buffer
  3. console.log(rs.toString());//转换成字符串

在这里插入图片描述
(6)创建文件夹

  1. // 注意不能重复创建,所以可以先判断文件是否创建了,如果不存在就创建(应该是看返回值,存在返回true,不存在返回false,所以要加!非符号,取反操作)
  2. if(!fs.existsSync('./folder')){
  3. fs.mkdirSync('./folder');
  4. }
  5. fs.writeFileSync('./folder/file000.txt','some content');

(7)删除文件夹

  1. // 直接删除,如果文件夹不为空,就会报错
  2. fs.rmdirSync('./folder');

(8)小例子:删除文件(文件夹、单独文件)

  1. const fs=require('fs');//首先引入fs文件系统内置模块
  2. // 那么现在文件夹内有内容,该怎么操作才能把这个文件夹删除呢?
  3. function delfiles(src){
  4. // 读取文件的状态信息
  5. var rs=fs.statSync(src);
  6. if(rs.isDirectory()){
  7. // 读取文件夹下的数据,返回一个数组
  8. var files=fs.readdirSync(src);
  9. files.forEach((item,index)=>{
  10. let curPath=src+'/'+item;
  11. // 判断子项里的是文件还是文件夹
  12. if(fs.statSync(curPath).isDirectory()){
  13. delfiles(curPath);
  14. }else{
  15. fs.unlinkSync(curPath);
  16. }
  17. })
  18. // 这样以上文件夹都是空文件夹了,再删除
  19. fs.rmdirSync(src);
  20. }else{
  21. fs.unlinkSync(src);
  22. }
  23. }
  24. delfiles('./folder')

删除前、删除后:
在这里插入图片描述 在这里插入图片描述

大师兄用三句话,搞定了这个小例子:
在这里插入图片描述

json的基本操作

  1. // (1)写入json文件
  2. let user={ name:'sky',age:18}
  3. // 想要把user里的数据存进data.json里
  4. fs.writeFileSync('data.json',JSON.stringify(user));
  5. // (2)读取json里的内容
  6. // 在node里面,卡伊把一个json文件当成一个模块引入进来
  7. var data=require('./data.json');
  8. console.log(data);
  9. // (3)修改json里的内容
  10. data.address='beijing';
  11. fs.writeFileSync('data.json',JSON.stringify(data));

Stream

官方文档
读取文件流
可读流的事件
可写的文件流
pipe链式使用
pipe

  1. const fs = require('fs');
  2. const zlib = require('zlib');
  3. fs.writeFileSync('log.txt', 'gp18');
  4. fs.createReadStream('log.txt')
  5. .pipe(zlib.createGzip())
  6. .pipe(fs.createWriteStream('log.txt.gzip'));

发表评论

表情:
评论列表 (有 0 条评论,80人围观)

还没有评论,来说两句吧...

相关阅读

    相关 文件

    在计算机编程中,文件读写是非常基础且常见的操作。以下是进行文件读写的一般步骤: 1. **打开文件**: - 使用`open()`函数,提供文件名和访问模式(如只读、追

    相关 文件

    文件读写一直都是常用工具,但是也是经常出问题的地方,现总结一二 1. 创建文件 在库函数中有个File.create(filename)用于创建一个文件,但是如果没有对应F