Node.js fs模块(文件模块)创建、删除目录(文件)读取写入文件流的方法


Posted in Javascript onSeptember 03, 2019

fs模块.js:

/* 
 1. fs.stat 检测是文件还是目录(目录 文件是否存在) 
 2. fs.mkdir 创建目录 (创建之前先判断是否存在) 
 3. fs.writeFile 写入文件(文件不存在就创建,但不能创建目录) 
 4. fs.appendFile 写入追加文件 
 5.fs.readFile 读取文件 
 6.fs.readdir 读取目录 
 7.fs.rename 重命名 
 8. fs.rmdir 删除目录 
 9. fs.unlink 删除文件 
*/
var fs=require('fs');  //fs是node.js的核心模块,不用下载安装,可以直接引入 
//1. fs.stat 检测是文件还是目录 fs.statSync()同步获取stats对象,通过返回值接收。
fs.stat('html',function(error,stats){
  if(error){
    console.log(error);
    return false;
  }
  console.log('文件:'+stats.isFile());
  console.log('目录:'+stats.isDirectory());
})
//2. fs.mkdir 创建目录 
fs.mkdir('css',function(error){
  if(error){
    console.log(error);
    return false;
  }
  console.log('创建目录成功');
})
//3. fs.writeFile 写入文件(会覆盖之前的内容)(文件不存在就创建) utf8参数可以省略 
fs.writeFile('123.txt','你好nodejs 覆盖','utf8',function(error){
  if(error){
    console.log(error);
    return false;
  }
  console.log('写入成功');
})
//4. fs.appendFile 追加文件 
fs.appendFile('123.txt','这是写入的内容\n',function(error){
  if(error){
    console.log(error);
    return false;
  }
  console.log('写入成功');
})
//5.fs.readFile 读取文件 
fs.readFile('123.txt',function(error,data){
  if(error){
    console.log(error);
    return false;
  }
  //console.log(data); //data是读取的十六进制的数据。 也可以在参数中加入编码格式"utf8"来解决十六进制的问题;
  console.log(data.toString()); //读取出所有行的信息 
})
//6.fs.readdir 读取目录下第一级内容 把目录下面的文件和文件夹都获取到。 
fs.readdir('html',function(error,data){
  if(error){
    console.log(error);
    return false;
  }
  console.log(data); //data是数组类型,包含文件夹以及文件的名字(只有第一级目录内容)。拿到一个文件夹下面的所有目录 
})
//7.fs.rename 重命名 1.改名 2.剪切文件(移动) 
fs.rename('html/index.html','html/news.html',function(error){
  if(error){
    console.log(error);
    return false;
  }
  console.log('修改名字成功');
})
//8. fs.rmdir 删除目录  rmdir 这个方法只能删除目录,不能删除文件 
fs.rmdir('abc目录',function(error){
  if(error){
    console.log(error);
    return false;
  }
  console.log('删除目录成功');
})
//9. fs.unlink删除文件 
fs.unlink('index.txt',function(error){
  if(error){
    console.log(error);
    return false;
  }
  console.log('删除文件成功');
})
//10. fs.createReadStream 从文件流中读取数据,读取的文件比较大时建议用流的方式读取,文件比较大会多次读取。 
var fileReadStream = fs.createReadStream( 'data1.json');
var str = '';
fileReadStream.on('data', (data) => {
  console.log("接收到" + data.length);  //文件比较大时,会多次读取,多次执行该回调函数 
str += data;
})
fileReadStream.on('end', () => {
  console.log(" --- 结束 ---");
console.log( str );
})
fileReadStream.on('error', (error) => {
  console.log(error)
})
//11. fs.createWriteStream 写入文件流 
var fs = require("fs");
var data = "我是从数据库获取的数据,我要保存起来";
var writerStream = fs.createWriteStream('output.txt');
writerStream.write( data , 'UTF8' );
writerStream.end(); //标记文件末尾 结束写入流,释放资源 
writerStream.on( 'finish', function() {
  console.log("写入完成。");
});
writerStream.on( 'error', function(error){
  console.log(error.stack);
});
console.log("程序执行完毕");
//12. pipe 管道流 
var fs = require("fs");
var readerStream = fs.createReadStream( 'input.txt');
var writerStream = fs.createWriteStream( 'output.txt');
readerStream.pipe( writerStream );
console.log("程序执行完毕");
//13. fs.access 判断目录、文件是否存在(读写权限)
var fs = require('fs');
fs.access('package.json',(err)=>{
  console.log(err ? '目录/文件不存在': '文件存在,可以进行读写');
});

总结

以上所述是小编给大家介绍的Node.js fs模块(文件模块)创建、删除目录(文件)读取写入文件流的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
Javascript 错误处理的几种方法
Jun 13 Javascript
用js实现层随着内容大小动态渐变改变 推荐
Dec 19 Javascript
php图像生成函数之间的区别分析
Dec 06 Javascript
2012年开发人员的16款新鲜的jquery插件体验分享
Dec 28 Javascript
js中的事件捕捉模型与冒泡模型实例分析
Jan 10 Javascript
JavaScript File API实现文件上传预览
Feb 02 Javascript
AngularJS中使用HTML5手机摄像头拍照
Feb 22 Javascript
JavaScript判断是否是微信浏览器
Jun 13 Javascript
ES6中的Promise代码详解
Oct 09 Javascript
vue观察模式浅析
Sep 25 Javascript
详解element-ui中form验证杂记
Mar 04 Javascript
vue使用一些外部插件及样式的配置代码
Nov 18 Javascript
layui 点击重置按钮, select 并没有被重置的解决方法
Sep 03 #Javascript
Layui 动态禁止select下拉的例子
Sep 03 #Javascript
解决Layui中layer报错的问题
Sep 03 #Javascript
Layui Table js 模拟选中checkbox的例子
Sep 03 #Javascript
element ui分页多选,翻页记忆的实例
Sep 03 #Javascript
JavaScript创建、读取和删除cookie
Sep 03 #Javascript
利用d3.js实现蜂巢图表带动画效果
Sep 03 #Javascript
You might like
php mail to 配置详解
2014/01/16 PHP
详解PHP中strlen和mb_strlen函数的区别
2014/03/07 PHP
CI分页类首页、尾页不显示的解决方法
2016/03/28 PHP
php+mysql实现的二级联动菜单效果详解
2016/05/10 PHP
php使用str_replace替换多维数组的实现方法分析
2017/06/15 PHP
Javascript 阻止javascript事件冒泡,获取控件ID值
2009/06/27 Javascript
jQuery选择没有colspan属性的td的代码
2010/07/06 Javascript
jquery validation验证身份证号,护照,电话号码,email(实例代码)
2013/11/06 Javascript
基于javascript实现的搜索时自动提示功能
2014/12/26 Javascript
jquery实现搜索框常见效果的方法
2015/01/22 Javascript
基于javascript编写简单日历
2016/05/02 Javascript
jquery 全选、全不选、反选效果的实现代码【推荐】
2016/05/05 Javascript
详解Javascript中prototype属性(推荐)
2016/09/03 Javascript
Bootstrap 设置datetimepicker在屏幕上面弹出设置方法
2017/03/21 Javascript
jQuery Plupload上传插件的使用
2017/04/19 jQuery
全面解析Node.js 8 重要功能和修复
2017/06/02 Javascript
微信小程序框架wepy之动态控制类名
2018/09/14 Javascript
vue如何使用async、await实现同步请求
2019/12/09 Javascript
[01:02]DOTA2上海特锦赛SHOWOPEN
2016/03/25 DOTA
python进阶教程之循环相关函数range、enumerate、zip
2014/08/30 Python
CentOS 6.5下安装Python 3.5.2(与Python2并存)
2017/06/05 Python
Python中的TCP socket写法示例
2018/05/11 Python
查看python下OpenCV版本的方法
2018/08/03 Python
pyqt 实现QlineEdit 输入密码显示成圆点的方法
2019/06/24 Python
python英语单词测试小程序代码实例
2019/09/09 Python
TensorFlow加载模型时出错的解决方式
2020/02/06 Python
适合Python初学者的一些编程技巧
2020/02/12 Python
python梯度下降算法的实现
2020/02/24 Python
python实现吃苹果小游戏
2020/03/21 Python
利用 Canvas实现绘画一个未闭合的带进度条的圆环
2019/07/26 HTML / CSS
购买中国最好的电子产品:Geekbuying
2018/03/13 全球购物
Deux par Deux官方网站:设计师童装
2020/01/03 全球购物
电子专业毕业生自我鉴定
2014/01/22 职场文书
​(迎国庆)作文之我爱我的祖国
2019/09/19 职场文书
golang import自定义包方式
2021/04/29 Golang
前端框架ECharts dataset对数据可视化的高级管理
2022/12/24 Javascript