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 相关文章推荐
jquery 简单导航实现代码
Sep 11 Javascript
关于Ext中form移除textfield方法:hide(),setVisible(false),remove()
Dec 02 Javascript
JavaScript设置表单上传时文件个数的方法
Aug 11 Javascript
JS验证邮件地址格式方法小结
Dec 01 Javascript
js实现文字垂直滚动和鼠标悬停效果
Dec 31 Javascript
AnjularJS中$scope和$rootScope的区别小结
Sep 18 Javascript
JS控制FileUpload的上传文件类型实例代码
Oct 07 Javascript
Vue.js使用v-show和v-if的注意事项
Dec 13 Javascript
Vue自定义指令拖拽功能示例
Feb 17 Javascript
javascript作用域链与执行环境详解
Mar 25 Javascript
webpack4之如何编写loader的方法步骤
Jun 06 Javascript
浅谈bootstrap layer.open中end的使用方法
Sep 12 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
提问的智慧
2006/10/09 PHP
smarty 原来也不过如此~~呵呵
2006/11/25 PHP
php xml文件操作实现代码(二)
2009/03/20 PHP
php session_start()关于Cannot send session cache limiter - headers already sent错误解决方法
2009/11/27 PHP
php文章内容分页并生成相应的htm静态页面代码
2010/06/07 PHP
利用PHP+JS实现搜索自动提示(实例)
2013/06/09 PHP
Yii2中设置与获取别名的函数(setAlias和getAlias)用法分析
2016/07/25 PHP
ThinkPHP 框架实现的读取excel导入数据库操作示例
2020/04/14 PHP
PHPStorm2020.1永久激活及下载更新至2020(推荐)
2020/09/25 PHP
Locate a File Using a File Open Dialog Box
2007/06/18 Javascript
javascript 客户端验证上传图片的大小(兼容IE和火狐)
2009/08/15 Javascript
基于jquery ajax 用户无刷新登录方法详解
2012/04/28 Javascript
js屏蔽鼠标键盘(右键/Ctrl+N/Shift+F10/F11/F5刷新/退格键)
2013/01/24 Javascript
用jquery等比例控制图片宽高的具体实现
2014/01/28 Javascript
详解javascript实现自定义事件
2016/01/19 Javascript
NodeJS的Promise的用法解析
2016/05/05 NodeJs
为什么JavaScript没有块级作用域
2016/05/22 Javascript
jQuery File Upload文件上传插件使用详解
2016/12/06 Javascript
浅谈DOM的操作以及性能优化问题-重绘重排
2017/01/08 Javascript
详解JavaScript RegExp对象
2017/02/04 Javascript
angular 数据绑定之[]和{{}}的区别
2018/09/25 Javascript
在vue中使用express-mock搭建mock服务的方法
2018/11/07 Javascript
NodeJS开发人员常见五个错误理解
2020/10/14 NodeJs
详解Vue中的watch和computed
2020/11/09 Javascript
[16:56]教你分分钟做大人:司夜刺客
2014/10/30 DOTA
python解析含有重复key的json方法
2019/01/22 Python
python3+selenium自动化测试框架详解
2019/03/17 Python
selenium 多窗口切换的实现(windows)
2020/01/18 Python
python入门之井字棋小游戏
2020/03/05 Python
HTML5页面嵌入小程序没有返回按钮及返回页面空白的问题
2020/05/28 HTML / CSS
大学生见习期满自我鉴定
2014/09/13 职场文书
领导班子整改方案
2014/10/25 职场文书
少年派的奇幻漂流观后感
2015/06/08 职场文书
vue3不同环境下实现配置代理
2022/05/25 Vue.js
Zabbix对Kafka topic积压数据监控的问题(bug优化)
2022/07/07 Servers
Go结合Gin导出Mysql数据到Excel表格
2022/08/05 Golang