node的文件读取主要分为同步读取、异步读取,常用API有fs.readFile、fs.readFileSync。还有诸如更底层的fs.read,以及数据流(stream),后面再总结下咯~
直接上简单的demo,看下同步/异步接口的调用时的区别,以及分别对应的异常处理方式。
至于API说明,可参考node官方文档
/** * 文件读取demo,by 程序猿小卡 */ var fs = require('fs'); /** 文件同步读取 */ // 没有声明encoding,所以返回的是buffer(二进制数据) var bufferStr = fs.readFileSync('test.txt'); console.log(bufferStr); // 输出 <Buffer 68 65 6c 6c 6f 0a> // 声明了encoding,所以返回的是普通字符串 var str = fs.readFileSync('test.txt', { encoding: 'utf-8' }); console.log(str); // 输出 hello // 文件读取异常处理:通过try、catch try{ var errStr = fs.readFileSync('noneExist.txt'); }catch(err){ console.log(err.message); // 输出 ENOENT, no such file or directory 'noneExist.txt' } /** 文件异步读取 */ // 无声明encoding fs.readFile('test.txt', function(err, data){ if(err){ console.log('文件读取失败'); }else{ console.log(data); // 输出 <Buffer 68 65 6c 6c 6f 0a> } }); // 声明了encoding fs.readFile('test.txt', {encoding: 'utf-8'}, function(err, data){ if(err){ console.log('文件读取失败'); }else{ console.log(data); // 输出 hello } }); // 异常处理 fs.readFile('noneExist.txt', {encoding: 'utf-8'}, function(err, data){ if(err){ console.log('文件读取失败'); // 输出 文件读取失败 }else{ console.log(data); } });