本文主要是介绍node.js读本地文件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
参考博客:https://blog.csdn.net/qq_34803821/article/details/84633944
https://www.jb51.net/article/148582.htm
感谢原作者分享。同时附上 node.js 14.17.3 版本官网文档网址:
https://nodejs.org/dist/latest-v14.x/docs/api/documentation.html
一、异步读取文本文件
'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。文件也可位于其它路径,此时在第一个参数中一起写上文件路径即可,注意路径中的斜杠要左下右上,例如:“tempPath/sample.txt”。
二、异步读取二进制文件
'use strict';var fs = require('fs');
fs.readFile('sample.png', function (err, data) {if (err) {console.log(err);} else {console.log(data);console.log(data.length + ' bytes');}
});
当读取二进制文件时,不传入文件编码,回调函数的data参数将返回一个Buffer对象。在Node.js中,Buffer对象就是一个包含零个或任意个字节的数组(注意和Array不同)。
Buffer对象可以和String作转换,例如,把一个Buffer对象转换成String:
// Buffer -> String
var text = data.toString('utf-8');
console.log(text);
或者把一个String转换成Buffer:
// String -> Buffer
var buf = Buffer.from(text, 'utf-8');
console.log(buf);
三、同步读文件
'use strict';try {var data = fs.readFileSync( 'sample.txt', 'utf-8' );console.log( data );
} catch ( err ) {// 出错了
}
如果出错了,可以用try - catch 捕捉错误进行处理。
四、写文件
'use strict';var fs = require('fs');
var data = 'Hello, Node.js';
fs.writeFile('output.txt', data, function (err) {if (err) {console.log(err);} else {console.log('ok.');}
});
writeFile()的参数依次为文件名、数据和回调函数。如果传入的数据是String,默认按UTF-8编码写入文本文件,如果传入的参数是Buffer,则写入的是二进制文件。回调函数由于只关心成功与否,因此只需要一个err参数。
和readFile()类似,writeFile()也有一个同步方法,叫writeFileSync():
'use strict';var fs = require( 'fs' );
var data = 'Hello, Node.js';
fs.writeFileSync ( 'output.txt', data );
五、获取文件状态
如果我们要获取文件大小,创建时间等信息,可以使用fs.stat(),它返回一个Stat对象,能告诉我们文件或目录的详细信息:
'use strict';var fs = require('fs');fs.stat('sample.txt', function (err, 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(),可以试着改写上述异步代码为同步代码。
六、判断文件或目录是否存在
'use strict';var fs = require('fs');
fs.exists('/etc/passwd', ( exists ) => {console.log( exists ? 'file exists.' : 'file does not exist!');
});
在打开文件前判断一下文件是否存在是非常有用的,可以在出错时给出必要的提示,帮助发现和解决问题。
这篇关于node.js读本地文件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!