fs模块用于文件的读写等操作。
该模块有如下这些方法:

1、fs.stat() : 检测是文件还是目录

const fs = require('fs');fs.stat('test.html',function(err,stats){if(err){console.log(err);}else{console.log('文件:' + stats.isFile());        //trueconsole.log('目录:' + stats.isDirectory());   //false}
});

2、fs.mkdir():创建目录

接受如下几个参数:

  • path :将创建的目录路径
  • mode :目录权限(读写权限),默认0777
  • callback :回调,传递异常参数err
fs.mkdir('css',function(err){if(err){console.log(err);}else{console.log("创建成功");}
});

3、fs.writeFile():写入文件

  • filename (String) 文件名称
  • data (String | Buffer) 将要写入的内容,可以使字符串 或 buffer数据。
  • options (Object) option数组对象,包含 :
    • · encoding (string) 可选值,默认 ‘utf8′,当data使buffer时,该值应该为 ignored。
    • · mode (Number) 文件读写权限,默认值 438
    • · flag (String) 默认值 ‘w'
  • callback {Function} 回调,传递一个异常参数err。
var str = "Hello Node.js";
fs.writeFile('write.txt', str, 'utf8', function (err) {if (err) {console.log(err);}else{console.log("创建成功");}
});

如果该文件不存在则创建该名称文件并写入数据。如果多次写入的话,那么后面写入的内容会覆盖前面写入的内容。

4、fs.appendFile():追加文件

用法与writeFile相同,只是对此写入的话不会覆盖之前的数据,而是在其后追加数据。

5、fs.readFile() :读取文件

回调函数中的data即包含了读取的数据。

fs.readFile('write.txt',function(err,data){if(err){console.log(err);}else{console.log(data.toString());}
});

6、fs.readdir():读取目录,获取目录下面的文件和文件夹。

fs.readdir('css',function(err,data){if (err){console.log(err);}else{console.log(data);}
});

不过这样只能获取第一级目录

7、fs.rename():重命名文件

fs.rename('html/index.html','html/news.html',function(err){if (err) {console.log(err);} else {console.log('修改名字成功');}
})

这样就可以把index.html文件名修改为news.html

这个方法还可以实现文件剪切功能:

fs.rename('html/css/basic.css','html/style.css',function(err){if(err){console.log(err);return false;}console.log('剪切成功');
})

这样就可以把html/css/basic.css剪切到html/style.css

8、fs.redir():删除目录

fs.rmdir('text',function(err){if(err){console.log(err);return false;}console.log('删除目录成功');
})

这里的删除只能删除空目录。

9、fs.unlink():删除文件

fs.unlink('index.txt',function(err){if(err){console.log(err);return false;}console.log('删除文件成功');
})

10、fs.createReadStream():以流的方式读取数据

这种方式读取文件是分块读取的

// 创建一个可以读取的流,读取文件 input.txt 中
var readStream=fs.createReadStream('input.txt');var str='';/*保存数据*/
var count=0;  /*次数*///触发data事件,开始取读数据
readStream.on('data',function(chunk){str+=chunk;count++;
})//触发end事件,读取完成
readStream.on('end',function(chunk){console.log(count);console.log(str);
})//读取失败
readStream.on('error',function(err){console.log(err);
})

这种读取方式很高效,适合取读大批量数据。如果所读数据量不是很大的话使用上面的readFile方法即可。

11、fs.createWriteStream():以流的方式写入文件

var data = '我是从数据库获取的数据,我要保存到文件中去\n';// 创建一个可以写入的流,写入到文件 output.txt 中
var writerStream = fs.createWriteStream('output.txt');//开始写入数据
writerStream.write(data,'utf8');//标记写入完成
writerStream.end();//触发finish事件,完成写入
writerStream.on('finish',function(){console.log('写入完成');
})//失败
writerStream.on('error',function(){console.log('写入失败');
})

同样,如果要写入的文件不存在就创建该文件再写入。

12、管道流读取

管道提供了一个输出流到输入流的机制。通常我们用于从一个流中获取数据并将数据传递到另外的一个流中。

// 创建一个可读流,这是管道的输出端
var readerStream = fs.createReadStream('input.txt');// 创建一个可写流,这是管道的输入端
var writerStream = fs.createWriteStream('output.txt');// 管道读写操作
// 读取 input.txt 文件内容,并将内容写入到 output.txt 文件中
readerStream.pipe(writerStream);console.log("程序执行完毕");

转载于:https://www.cnblogs.com/hedawei/p/7989171.html

三、fs文件操作模块相关推荐

  1. Python内置模块---高级文件操作模块

    高级文件操作模块 code: # ************************************************************* """ 高级 ...

  2. python中shutil模块的用法-高级文件操作模块

    目录 前言 一.shutil是什么? 二.使用步骤 1. 安装shutil库 2. shutil库的使用 3. 复制函数 3.1 shutil.copy(src,dst) ==> 拷贝文件和权限 ...

  3. python3csv与xlsx文件操作模块(csv、xlsxwriter)

    目录 一.csv模块实现csv文件操作 1.CSV介绍 2.CSV常用类与方法 二.xlsxwriter模块,实现Excel文件操作 1.Xlsx Writer模块的安装 2.Xlsx Writer模 ...

  4. python入门三:文件操作

    一.文件操作 1.文件对象:和c一样,要想对一个文件进行操作,需要获取该文件的对象 1 f = open("xxx") # 打开文件并获取文件对象 2 f.xxx # 对文件进行某 ...

  5. supersu-v2.8.2.zip_术业有专攻:ZIP文件操作模块zipfile

    本文约2380字,建议阅读时间12~15分钟 关键字:python,zip,压缩文件,zipfile python标准库中提供了主流压缩文件格式(如gz.tar.zip等)的压缩与解压,如操作gz格式 ...

  6. Photoshop CS6 自学(三)文件操作之第一部分

    Photoshop自学 第三节 第三章 文件的基本操作方法 新建文件 实例一制作一张可爱的桌面宽屏壁纸 打开文件 用打开命令打开文件 用在Bridge中浏览命令打开文件 用打开为命令打开文件 用打开为 ...

  7. Python基础(三)文件操作和处理json

    文件操作步骤:1.有一个文件,2.打开文件,3.读写修改文件,4.关闭文件 一.有一个文件:新建或导入文件 二.打开文件:如果是新建的文件默认和py文件在同一个目录:如果是打开文件,要将文件放在py同 ...

  8. [06]python3 shutil高级文件操作模块

    1.shutil是shell utility的缩写 shutil.move直接从一个地方挪到另一个地方,而os.rename常常只能重命名,不能挪动位置. 功能是: >>>shuti ...

  9. Python3 shutil(高级文件操作 模块)

    原文: http://blog.csdn.net/Rozol/article/details/72672698 #!/usr/bin/env python # coding=utf-8 __autho ...

最新文章

  1. Pyhton 运算符
  2. 用户接口(User exit)
  3. [转载] 在网页中拖放和停靠div的例子
  4. 删除隐藏版本信息 版本回退_git之版本穿梭术
  5. 使用ICSharpCode.TextEditor制作一个语法高亮显示的XML编辑器
  6. 计算机知识问答一站到底,一站到底的答题规则是什么
  7. AJAX方式进行验证码的判断(JS方式)
  8. python、声明全局变量的关键字是_python基础之全局变量与global关键字
  9. 离散数学 (II) 习题 2
  10. java linux路径带括号,java执行linux命令 括号
  11. Linux系统配置(shell函数与数组)
  12. ICPC2017沈阳赛区游记
  13. Python数据分析入门笔记5——数据预处理之异常值
  14. 教育部高等教育司指定大学生必读100本书目
  15. JavaWeb基础学习一无框架项目小练习
  16. Camera | 4.瑞芯微平台MIPI摄像头应用程序编写
  17. Android uevent进程源码分析
  18. Redis内存分析工具之redis-rdb-tools的安装与使用
  19. LK 打印log控制
  20. win10安装.NET Framework 3.5的方法

热门文章

  1. JAVA学习day07 1
  2. 教你如何在@ViewChild查询之前获取ViewContainerRef
  3. JS字符转为json对象
  4. 以云为跳板,疑似中国黑客组织黑进全球知名IT服务公司
  5. 常用SQL语句实例 11
  6. 用PHP的CURL写的一个采集Discuz的例子
  7. 第三十四章 批量印刷书籍
  8. js的prototype属性
  9. Bootstrap 分页导航
  10. HTML5 画布变换