nodeJs--fs

本文详细介绍了Node.js中fs模块的功能及用法,包括异步和同步读写文件、二进制文件处理以及文件信息获取等操作。通过具体示例展示了如何使用fs模块进行文件系统操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值