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 相关文章推荐
Chrome下ifame父窗口调用子窗口的问题示例探讨
Mar 17 Javascript
JavaScript怎么判断图片是否加载完成以便获取其尺寸
May 08 Javascript
js获取checkbox复选框选中的选项实例
Aug 24 Javascript
jQuery的context属性用法实例
Dec 27 Javascript
如何使用jquery easyui创建标签组件
Nov 18 Javascript
必备的JS调试技巧汇总
Jul 20 Javascript
微信小程序实现添加手机联系人功能示例
Nov 30 Javascript
vue-cli下的vuex的简单Demo图解(实现加1减1操作)
Feb 26 Javascript
Vue源码探究之状态初始化
Nov 14 Javascript
浅谈js闭包理解
Mar 28 Javascript
微信小程序 多行文本显示...+显示更多按钮和收起更多按钮功能
Sep 26 Javascript
Vue 列表页带参数进详情页的操作(router-link)
Nov 13 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生成不重复随机数、数组的4种方法分享
2015/03/30 PHP
php mysql_list_dbs()函数用法示例
2017/03/29 PHP
PHP发送邮件确认验证注册功能示例【修改别人邮件类】
2019/11/09 PHP
TP5框架实现的数据库备份功能示例
2020/04/05 PHP
jQuery的一些特性和用法整理小结
2010/01/13 Javascript
js异步加载的三种解决方案
2013/03/04 Javascript
导入extjs、jquery 文件时$使用冲突问题解决方法
2014/01/14 Javascript
js 与 php 通过json数据进行通讯示例
2014/03/26 Javascript
js+html5实现可在手机上玩的拼图游戏
2015/07/17 Javascript
使用jsonp实现跨域获取数据实例讲解
2016/12/25 Javascript
js 判断一个数字是不是2的n次方幂的实例
2017/11/26 Javascript
swiper移动端轮播插件(触碰图片之后停止轮播)
2017/12/28 Javascript
基于node搭建服务器,写接口,调接口,跨域的实例
2018/05/13 Javascript
详解ESLint在Vue中的使用小结
2018/10/15 Javascript
layui点击数据表格添加或删除一行的例子
2019/09/12 Javascript
详解Vue后台管理系统开发日常总结(组件PageHeader)
2019/11/01 Javascript
Vue 按照创建时间和当前时间显示操作(刚刚,几小时前,几天前)
2020/09/10 Javascript
深入了解Vue3模板编译原理
2020/11/19 Vue.js
[01:10]DOTA2亚洲邀请赛 征战号角响彻全场
2015/01/06 DOTA
python实现linux下使用xcopy的方法
2015/06/28 Python
一波神奇的Python语句、函数与方法的使用技巧总结
2015/12/08 Python
python实现SMTP邮件发送功能
2020/06/16 Python
Python中的groupby分组功能的实例代码
2018/07/11 Python
对python函数签名的方法详解
2019/01/22 Python
Python 给下载文件显示进度条和下载时间的实现
2020/04/02 Python
HTML5 Canvas基本线条绘制的实例教程
2016/03/17 HTML / CSS
娇韵诗俄罗斯官方网站:Clarins俄罗斯
2020/10/03 全球购物
大四本科生的自我评价
2013/12/30 职场文书
聚美优品陈欧广告词
2014/03/14 职场文书
函授生自我鉴定
2014/03/25 职场文书
合作经营协议书范本
2014/04/17 职场文书
2014教师年度思想工作总结
2014/11/10 职场文书
导师对论文的学术评语
2015/01/04 职场文书
简单的辞职信模板
2015/05/12 职场文书
使用ICOM IC-R9500接收机同时测评十台收音机中波接收性能
2022/05/10 无线电
MyBatis XPathParser解析器使用范例详解
2022/07/15 Java/Android