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 相关文章推荐
JS启动应用程序的一个简单例子
May 11 Javascript
jquery学习总结(超级详细)
Sep 04 Javascript
跨域资源共享 CORS 详解
Apr 26 Javascript
JavaScript希尔排序、快速排序、归并排序算法
May 08 Javascript
使用JS中的exec()方法构造正则表达式验证
Aug 01 Javascript
jquery实现input框获取焦点的简单实例
Jan 26 Javascript
JS 组件系列之BootstrapTable的treegrid功能
Jun 16 Javascript
vue地区选择组件教程详解
May 04 Javascript
jQuery解析json格式数据示例
Sep 01 jQuery
JavaScript日期工具类DateUtils定义与用法示例
Sep 03 Javascript
vue实现的封装全局filter并统一管理操作示例
Feb 02 Javascript
Vue接口封装的完整步骤记录
May 14 Vue.js
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
Fedora下安装php Redis扩展笔记
2014/09/03 PHP
PHP curl 抓取AJAX异步内容示例
2014/09/09 PHP
php中执行系统命令的方法
2015/03/21 PHP
thinkphp多层MVC用法分析
2015/12/30 PHP
PHP使用file_get_content设置头信息的方法
2016/02/14 PHP
PHP实现的策略模式示例
2019/03/20 PHP
javascript 写类方式之一
2009/07/05 Javascript
兼容多浏览器的iframe自适应高度(ie8 、谷歌浏览器4.0和 firefox3.5.3)
2009/11/04 Javascript
用jquery实现点击栏目背景色改变
2012/12/10 Javascript
jQuery zclip插件实现跨浏览器复制功能
2015/11/02 Javascript
JavaScript匿名函数之模仿块级作用域
2015/12/12 Javascript
详解JavaScript正则表达式之RegExp对象
2015/12/13 Javascript
js实现获取两个日期之间所有日期的方法
2016/06/17 Javascript
jQuery Ajax 异步加载显示等待效果代码分享
2016/08/01 Javascript
nodejs微信公众号支付开发
2016/09/19 NodeJs
JS获取字符对应的ASCII码实例
2017/09/10 Javascript
浅谈JavaScript中的属性:如何遍历属性
2017/09/14 Javascript
JavaScript实现新年倒计时效果
2018/11/17 Javascript
解决echarts数据二次渲染不成功的问题
2020/07/20 Javascript
基于JavaScript的数据结构队列动画实现示例解析
2020/08/06 Javascript
[01:01:42]Secret vs Optic Supermajor 胜者组 BO3 第二场 6.4
2018/06/05 DOTA
python使用matplotlib绘制热图
2018/11/07 Python
使用Python FastAPI构建Web服务的实现
2020/06/08 Python
Python用Jira库来操作Jira
2020/12/28 Python
浅析两列自适应布局的3种思路
2016/05/03 HTML / CSS
小米俄罗斯授权商店:Xiaomi俄罗斯
2019/12/08 全球购物
常用UNIX 命令(Linux的常用命令)
2015/12/26 面试题
新闻编辑自荐信
2013/11/03 职场文书
行政助理岗位职责
2013/11/10 职场文书
电钳专业个人求职信
2014/01/04 职场文书
大学生暑期实践感言
2014/02/26 职场文书
实现中国梦思想汇报2014
2014/09/13 职场文书
关于成绩下滑的自我检讨书
2014/09/20 职场文书
小学见习报告
2014/10/31 职场文书
小学英语教师研修感悟
2015/11/18 职场文书
进阶篇之linux环境下安装MySQL数据库
2022/04/09 MySQL