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访问XML数据的实例
Dec 27 Javascript
javascript 简练的几个函数
Aug 29 Javascript
javascript类继承机制的原理分析
Sep 12 Javascript
jquery在Chrome下获取图片的长宽问题解决
Mar 20 Javascript
Jquery取得iframe下内容的方法
Nov 18 Javascript
jquery禁用右键示例
Apr 28 Javascript
seaJs的模块定义和模块加载浅析
Jun 06 Javascript
javascript实现控制浏览器全屏
Mar 30 Javascript
基于jQuery Ajax实现下拉框无刷新联动
Dec 06 jQuery
vue项目环境变量配置的实现方法
Oct 12 Javascript
微信小程序个人中心的列表控件实现代码
Apr 26 Javascript
在vue中实现禁止屏幕滚动,禁止屏幕滑动
Jul 22 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中date与gmdate的区别及默认时区设置
2014/05/12 PHP
php利用嵌套数组拼接与解析json的方法
2017/02/07 PHP
javascript之锁定表格栏位
2007/06/29 Javascript
js右键菜单效果代码
2007/07/21 Javascript
GWT中复制到剪贴板 js+flash实现复制 兼容性比较好
2010/03/07 Javascript
JS无限树状列表实现代码
2011/01/11 Javascript
JavaScript字符串对象toLowerCase方法入门实例(用于把字母转换为小写)
2014/10/17 Javascript
jQuery中slice()方法用法实例
2015/01/07 Javascript
JavaScript数组对象实现增加一个返回随机元素的方法
2015/07/27 Javascript
JavaScript定时器setTimeout()和setInterval()详解
2017/08/18 Javascript
在vue中使用css modules替代scroped的方法
2018/03/10 Javascript
jQuery实现form表单序列化转换为json对象功能示例
2018/05/23 jQuery
详解如何创建并发布一个 vue 组件
2018/11/08 Javascript
jQuery.parseJSON()函数详解
2019/02/28 jQuery
python 全局变量的import机制介绍
2017/09/07 Python
Django 忘记管理员或忘记管理员密码 重设登录密码的方法
2018/05/30 Python
Python面向对象程序设计类的多态用法详解
2019/04/12 Python
对PyQt5中树结构的实现方法详解
2019/06/17 Python
Django forms表单 select下拉框的传值实例
2019/07/19 Python
利用python实现凯撒密码加解密功能
2020/03/31 Python
python如何爬取动态网站
2020/09/09 Python
python全栈开发语法总结
2020/11/22 Python
canvas烟花特效锦集
2018/01/17 HTML / CSS
优秀公益广告词大全
2014/03/19 职场文书
巾帼建功标兵事迹材料
2014/05/11 职场文书
药品营销专业毕业生自荐信
2014/07/02 职场文书
高职教师先进事迹材料
2014/08/24 职场文书
致地震灾区的慰问信
2015/03/23 职场文书
清明节寄语2015
2015/03/23 职场文书
2015年全国爱眼日活动方案
2015/05/05 职场文书
中秋晚会致辞
2015/07/31 职场文书
应收账款管理制度
2015/08/06 职场文书
被委托人身份证明
2015/08/07 职场文书
2016优秀班主任个人先进事迹材料
2016/02/26 职场文书
ThinkPHP5和ThinkPHP6的区别
2021/03/31 PHP
Python爬取奶茶店数据分析哪家最好喝以及性价比
2022/09/23 Python