大佬教程收集整理的这篇文章主要介绍了node.js基本模块学习(一) fs模块,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
什么是fs模块
Node.js内置的fs模块就是文件系统模块,复制读写文件。
和所有其他javascript模块不同,fs模块同时提供了异步和同步的方法。
因为Javascript是单线程模型,执行io操作时候,javascript代码无需等待,javascript代码无需等待,而是传入回调函数后,继续执行后续javascript代码,就是说如果某个I/O操作需要等待服务器发送数据,但是javascript不会在这段代码上等待,而是会继续执行后续代码,比如jquery提供的getjson操作。
$.getJSON('http://example.com/ajax',function (data) { console.log('IO结果返回后执行...'); }); console.log('不等待IO结果直接执行后续代码...');同步的方法
同步的方法,要求javascript在代码上等待,耗时会长。
var data = getJSONSync('http://example.com/ajax');
读取文本文件
'use Strict'; var fs = require('fs'); fs.readFile('sample.txt','utf-8',function (err,data) { if (err) { console.log(err); } else { console.log(data); } });sample.txt 在当前目录下,并且文件编码为utf-8
readFile是node.js标准的回调函数,第一参数err代表错误信息,第二个参数data代表结果
正常读取时候err为空,data为读取到的数据,发生错误时候err表示一个错误对象,data为undefined
if(err){ 表示出错} else{ 表示文件正常读取}
读取二进制文件
读取二进制文件,不用传入文件编码,这时候data返回的就是一个Buffer对象,在Node.js中Buffer对象就是一个
包含零个或者任意个字节的数组(和Array不一样)
Buffer对象转换为String
var text = data.toString("utf-8");
console.log(text);
String对象转为Buffer
var buffer = Buffer.from(text,'utf-8');
console.log(buffer);
fs模块同步读取文件
//同步读取文件 var data = fs.readFileSync('sample.txt','utf-8'); console.log(data);如果同步读取文件发生异常,则需要使用try{}catch(err){}捕获
fs模块写文件
异步写入文件
//异步写入文件 var writedata = 'Hello,ni hao!'; fs.writeFile('output.txt',writedata,function(err){ if(err){ console.log(err); }else{ console.log('write success'); } });writeFile的参数分别为文件名,数据和回调函数。
如果传入的数据是String类型,就是按照utf-8编码写入文件文件,如果传入的数据类型是Buffer对象,就会写入二进制文件,文件不存在自动创建
回调函数只关心成功与否,err参数即可
同步写入文件
//同步写入文件 var writedataSyn = 'Hello World!'; fs.writeFileSync('output.txt','this a test data');
'use Strict'; var fs = require('fs'); fs.stat('sample.txt',stat) { if (err) { console.log(err); } else { // 是否是文件: console.log('isFile: ' + stat.isFile()); // 是否是目录: console.log('isDirectory: ' + stat.isDirectory()); if (stat.isFile()) { // 文件大小: console.log('size: ' + stat.sizE); // 创建时间,Date对象: console.log('birth time: ' + stat.birthtimE); // 修改时间,Date对象: console.log('modified time: ' + stat.mtimE); } } });stat()也有一个对应的同步函数statSync()
NODE环境执行的javascript代码是服务器端代码,所以绝大部分在服务器运行期反复执行的代码,必须使用异步代码,否则,同步代码在执行期间,服务器将停止响应,因为Javascript是单线程
以上是大佬教程为你收集整理的node.js基本模块学习(一) fs模块全部内容,希望文章能够帮你解决node.js基本模块学习(一) fs模块所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。