nodeJs--fs

1.簡介

Node.js內置的fs模塊就是文件系統模塊,負責讀寫文件, fs模塊同時提供了異步和同步的方法。

2. 使用示例

'use strict';
let fs = require('fs');

/**
 * @description 異步讀取文件
 */
function readFile (fileName, encode = 'utf-8') {
    fs.readFile(fileName, encode, function(err, data) {
        if (err)
            console.log(err)
        else 
            console.log(data)
    })
}
/**
 * @description 異步寫文件
 */
function writeFile(fileName, str) {
    fs.writeFile(fileName, str, function(err) {
        if (err)
            console.log(err)
        else 
            console.log('寫文件操作成功!')
    })    
}
/**
 * @description 同步讀文件
 */
function readFileAsync (fileName, encode = 'utf-8') {
    try {
        let data = fs.readFileSync(fileName, encode)
        console.log(data);
    } catch (err) {
        console.log(err);
    }
}
/**
 * @description 同步寫文件
 */
function writeFileAsync(fileName, str, encode = 'utf-8') {
    try {
        fs.writeFileSync(fileName, str, encode)
        console.log('同步寫文件操作成功!')
    } catch (err) {
        console.log(err);
    }
}
/**
 * @description 二進制讀取文件
 */
function readFileBuffer(fileName) {
    fs.readFile(fileName, function (err, data) {
        if (err) {
            console.log(err);
        } else {
            console.log(data);
            console.log(data.length + ' bytes');
        }
    });

    //Buffer對象可以和String作轉換,例如,把一個Buffer對象轉換成String:
    //Buffer -> String 
    //let text = data.toString('utf-8');
    //String->Buffer:
    //let buf = Buffer.from(text, 'utf-8');
}
/**
 * @description 讀取文件信息
 */
function fileInfo (fileName) {
    // stat()也有一個對應的同步函數statSync()
    fs.stat(fileName, 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);
            }
        }
    })
}

module.exports = {
    read: readFile,
    write: writeFile,
    readAsync: readFileAsync,
    writeAysnc: writeFileAsync,
    fileInfo: fileInfo,
    readFileBuffer: readFileBuffer
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章