NodeJs的fs读写删除移动监听


Posted in NodeJs onApril 28, 2017

NodeJs版本:4.4.4

fs

文件系统模块是一个封装了标准的 POSIX 文件 I/O 操作的集合。Node.js 文件系统(fs 模块)模块中的方法均有异步和同步版本。

图片的复制与粘贴

创建一个可读流与一个写入流。通过管道pipe。

var fileReadStream = fs.createReadStream(sourcePath);
var fileWriteStream = fs.createWriteStream(targetPath);
fileReadStream.pipe(fileWriteStream);
//监听关闭事件得知执行完成
fileWriteStream.on('close', function() {
 console.log('移动成功!');   
})

读文件(fs.readFile)

定义:fs.readFile(filename[, options], callback)

参数:

  • filename:{String} 文件名/文件路径
  • options:{Object} 可选参数

encoding:{String | Null} 默认 = null 编码方式

flag:{String} 默认 = 'r' 文件打开的行为(可写,可读等)

  • callback:{Function}
var fs = require('fs');
//读取文件
fs.readFile('../lianxi/child_process.js',{
 encoding:'utf-8',
 flag:'r'
}, function(err,data){
 if(err) throw err;
 console.log(data);
});

这里读取文件如果不设置编码方式,读取的文件就是以buffer的形式返回。

<Buffer 76 61 72 20 63 68 69 6c 64 5f 70 72 6f 63 65 73 73 20 3d 20 72 65 71 75 69 72 65 28 27 63 68 69 6c 64 5f 70 72 6f 63 65 73 73 27 29 3b 0d 0a 76 61 72 ... >

设置为utf-8后,返回的就是字符串的形式。如下:

var child_process = require('child_process');...

写文件(fs.writeFile)

定义:fs.writeFile(filename, data[, options], callback)

参数:

  • filename:{String}
  • data:{String | Buffer}
  • options:{Object}

encoding:{String | Null} 默认 = 'utf8'
mode:{Number} 默认 = 438 (aka 0666 in Octal)
flag:{String} 默认 = 'w'

  • callback {Function}
//写入文件
fs.writeFile('../lianxi/child_process.js','[zqz]要写入的数据字符串或者buffer',{
 encoding:'utf8',
 mode:438,
 flag:'w'
},function(err){
})

注意:异步写文件,如果文件已经存在则替换。

打开文件(fs.open)

定义:fs.open(path, flags[, mode], callback)

参数:

  • path:文件/文件路径
  • flags:文件打开的行为
  • mode:设置文件模式(权限),文件创建默认权限为 0666(可读,可写)。
  • callback:回调函数
//打开文件
fs.open('../lianxi/child_process.js','r+',0666,function(err,data){
})

给文件添加数据(fs.appendFile)

定义:fs.appendFile(filename, data[, options], callback)

参数:

  • filename:{String}
  • data:{String | Buffer}
  • options:{Object}

encoding {String | Null} 默认 = 'utf8'
mode {Number} 默认 = 438 (aka 0666 in Octal)
flag {String} 默认 = 'a'

  • callback {Function}
//给文件添加数据
fs.appendFile('../lianxi/child_process.js', '异步添加的字符串或buffer', {
 encoding:'utf8',
 mode:438,
 flag:'a'
}, function(err){
});

注意:异步的给文件添加数据,如果文件不存在,就会创建一个文件。

删除文件(fs.unlink)

定义:fs.unlink(path, callback)

var fs = require('fs');
fs.unlink('./t/index.html',function (err) {
 if(err) throw err;
 console.log('成功')
})

创建文件(fs.open)

定义:fs.open(path, flags[, mode], callback)

也可以使用fs.open创建文件。

fs.open("test.txt", "w",function (err) {
});

删除文件夹(fs.rmdir)

定义:fs.rmdir(path, callback)

fs.rmdir('./t/a',function (err) {
 if(err) throw err;
 console.log('成功')
})

创建文件夹(fs.mkdir)

定义:fs.mkdir(path[, mode], callback)

参数:mode 默认是 to 0777.

fs.mkdir('./t/a',0777,function (err) {
 if(err) throw err;
 console.log('成功')
})

文件监听(fs.watch fs.watchFile)

定义:fs.watch(filename[, options][, listener])
定义:fs.watchFile(filename[, options], listener)

fs.watch('test.js', function (event, filename) {
});
fs.watchFile('test.js', function(curr, prev){
});

flags

Flag 描述
r 以读取模式打开文件。如果文件不存在抛出异常。
r+ 以读写模式打开文件。如果文件不存在抛出异常。
rs 以同步的方式读取文件。
rs+ 以同步的方式读取和写入文件。
w 以写入模式打开文件,如果文件不存在则创建。
wx 类似 'w',但是如果文件路径存在,则文件写入失败。
w+ 以读写模式打开文件,如果文件不存在则创建。
wx+ 类似 'w+', 但是如果文件路径存在,则文件读写失败。
a 以追加模式打开文件,如果文件不存在则创建。
ax 类似 'a', 但是如果文件路径存在,则文件追加失败。
a+ 以读取追加模式打开文件,如果文件不存在则创建。
ax+ 类似 'a+', 但是如果文件路径存在,则文件读取追加失败。

以上所述是小编给大家介绍的NodeJs的fs读写删除移动监听,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

NodeJs 相关文章推荐
轻松创建nodejs服务器(5):事件处理程序
Dec 18 NodeJs
轻松创建nodejs服务器(10):处理POST请求
Dec 18 NodeJs
nodejs实现遍历文件夹并统计文件大小
May 28 NodeJs
NodeJs——入门必看攻略
Jun 27 NodeJs
Nodejs全局安装和本地安装的不同之处
Jul 04 NodeJs
nodejs和php实现图片访问实时处理
Jan 05 NodeJs
nodejs根据ip数组在百度地图中进行定位
Mar 06 NodeJs
nodejs判断文件、文件夹是否存在及删除的方法
Nov 10 NodeJs
Nodejs 识别图片类型的方法
Aug 15 NodeJs
nodejs文件夹深层复制功能
Sep 03 NodeJs
linux 下以二进制的方式安装 nodejs
Feb 12 NodeJs
分享node.js实现简单登录注册的具体代码
Apr 26 NodeJs
NodeJs安装npm包一直失败的解决方法
Apr 28 #NodeJs
NodeJs模拟登陆正方教务
Apr 28 #NodeJs
用Nodejs搭建服务器访问html、css、JS等静态资源文件
Apr 28 #NodeJs
Nodejs读取文件时相对路径的正确写法(使用fs模块)
Apr 27 #NodeJs
详解nodejs express下使用redis管理session
Apr 24 #NodeJs
nodejs入门教程六:express模块用法示例
Apr 24 #NodeJs
Nodejs进阶:express+session实现简易登录身份认证
Apr 24 #NodeJs
You might like
PHP面向对象编程快速入门
2006/10/09 PHP
PHP中去掉字符串首尾空格的方法
2012/05/19 PHP
PHP中ltrim与rtrim去除左右空格及特殊字符实例
2016/01/07 PHP
Smarty模板引擎缓存机制详解
2016/05/23 PHP
PHP命令行执行整合pathinfo模拟定时任务实例
2016/08/12 PHP
ThinkPHP整合datatables实现服务端分页的示例代码
2018/02/10 PHP
mapper--图片热点区域高亮组件官方站点
2007/12/22 Javascript
js String对象中常用方法小结(字符串操作)
2012/01/27 Javascript
AngularJS使用angular-formly进行表单验证
2015/12/27 Javascript
js实现div在页面拖动效果
2016/05/04 Javascript
Vue多系统切换实现方案
2018/06/05 Javascript
对vue v-if v-else-if v-else 的简单使用详解
2018/09/29 Javascript
vue 基于element-ui 分页组件封装的实例代码
2018/12/10 Javascript
vue+springboot图片上传和显示的示例代码
2020/02/14 Javascript
Javascript如何实现双指控制图片功能
2020/02/25 Javascript
[02:05]DOTA2完美大师赛趣味视频之看我表演
2017/11/18 DOTA
Linux下将Python的Django项目部署到Apache服务器
2015/12/24 Python
python利用正则表达式搜索单词示例代码
2017/09/24 Python
python多线程分块读取文件
2019/08/29 Python
Python进度条的制作代码实例
2019/08/31 Python
python中open函数的基本用法示例
2019/09/07 Python
pyinstaller打包成无控制台程序时运行出错(与popen冲突的解决方法)
2020/04/15 Python
详解python程序中的多任务
2020/09/16 Python
Python实现哲学家就餐问题实例代码
2020/11/09 Python
完美解决Pycharm中matplotlib画图中文乱码问题
2021/01/11 Python
Doyoueven官网:澳大利亚健身服饰和配饰品牌
2019/03/24 全球购物
美国专业汽车音响和移动电子产品零售商:Car Toys
2019/05/13 全球购物
东方通信股份有限公司VC面试题
2014/08/27 面试题
分厂厂长岗位职责
2013/12/29 职场文书
工程索赔意向书
2014/08/30 职场文书
远程培训的心得体会
2014/09/01 职场文书
2015年客房服务员工作总结
2015/05/15 职场文书
中秋节随笔
2015/08/15 职场文书
世界上超棒的8种逻辑思维
2019/08/06 职场文书
python实现简单区块链结构
2021/04/25 Python
解决spring.thymeleaf.cache=false不起作用的问题
2022/06/10 Java/Android