node基础:文件系统-文件读取

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);
    }
});

 

posted @ 2014-03-16 01:57  程序猿小卡  阅读(5375)  评论(0编辑  收藏  举报