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模块化编程(一)模块的写法最佳实践
Jan 17 Javascript
判断访客终端类型集锦
Jun 05 Javascript
jQuery 遍历函数详解
Jul 05 Javascript
js制作网站首页图片轮播特效代码
Aug 30 Javascript
Javascript之面向对象--封装
Dec 02 Javascript
浅谈vue引入css,less遇到的坑和解决方法
Jan 20 Javascript
vue项目中使用tinymce编辑器的步骤详解
Sep 11 Javascript
原生JS实现轮播图效果
Oct 12 Javascript
详解ES6 Promise对象then方法链式调用
Oct 20 Javascript
js时间戳转yyyy-MM-dd HH-mm-ss工具类详解
Apr 30 Javascript
JS实现的碰撞检测与周期移动完整示例
Sep 02 Javascript
javascript中innerHTML 获取或替换html内容的实现代码
Mar 17 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 无极分类(递归)实现代码
2010/01/05 PHP
php 注册时输入信息验证器的实现详解
2013/07/05 PHP
PHP 5.5 创建和验证哈希最简单的方法详解
2013/11/07 PHP
PHP中字符安全过滤函数使用小结
2015/02/25 PHP
PHP网页安全认证的实例详解
2017/09/28 PHP
PHP基于双向链表与排序操作实现的会员排名功能示例
2017/12/26 PHP
js CSS操作方法集合
2008/10/31 Javascript
Jquery中增加参数与Json转换代码
2009/11/20 Javascript
jquery实现居中弹出层代码
2010/08/25 Javascript
Jquery数独游戏解析(一)-页面布局
2010/11/05 Javascript
Javascript的常规数组和关联数组对比小结
2012/05/24 Javascript
基于jquery打造的百分比动态色彩条插件
2012/09/19 Javascript
JS页面延迟执行一些方法(整理)
2013/11/11 Javascript
checkbox勾选判断代码分析
2014/06/11 Javascript
三种取消选中单选框radio的方法
2014/09/09 Javascript
学习JavaScript设计模式之状态模式
2016/01/08 Javascript
Bootstrap零基础学习第一课之模板
2016/07/18 Javascript
探究JavaScript中的五种事件处理程序方式
2016/12/07 Javascript
鼠标拖动改变DIV等网页元素的大小的实现方法
2017/07/06 Javascript
json前后端数据交互相关代码
2018/09/19 Javascript
用Electron写个带界面的nodejs爬虫的实现方法
2019/01/29 NodeJs
Vue 设置axios请求格式为form-data的操作步骤
2019/10/29 Javascript
详解vue-cli项目在IE浏览器打开报错解决方法
2020/12/10 Vue.js
[01:05]主宰至宝剑心之遗
2017/03/16 DOTA
python之import机制详解
2014/07/03 Python
浅谈matplotlib默认字体设置探索
2021/02/03 Python
css3选择器基本介绍
2014/12/15 HTML / CSS
HTML5全屏(Fullscreen)API详细介绍
2015/04/24 HTML / CSS
Bibloo匈牙利:女装、男装、童装及鞋子和配饰
2019/04/14 全球购物
越南母婴用品购物网站:Kids Plaza
2020/04/09 全球购物
领导证婚人证婚词
2014/01/13 职场文书
办公室人员先进事迹
2014/01/27 职场文书
学校领导四风问题整改措施思想汇报
2014/10/09 职场文书
2014年社团工作总结范文
2014/11/27 职场文书
2015年先进个人自荐书
2015/03/24 职场文书
SQL Server中交叉联接的用法详解
2021/04/22 SQL Server