我是靠谱客的博主 精明柜子,最近开发中收集的这篇文章主要介绍fs(文件系统——文件操作),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

读取文件:

const fs = require("fs");

// 异步读取
fs.readFile('a.js', function (err, data) {
   console.log(data.toString());
});

// 同步读取
let data = fs.readFileSync('a.js');
console.log(data.toString());

写入文件 :

const fs = require("fs");

//追加写入
fs.writeFile('a.js', '我是内容', {flag:'a'}, function(err) {
    console.log("写入完成");
});

//覆盖写入
fs.writeFile('a.js', '我是内容', {flag:'w'}, function(err) {
    console.log("写入完成");
});

 获取文件状态对象:

const fs = require("fs");

fs.stat('a.js', function (err, stats) {
    console.log('文件状态对象',stats); 
    stats.atimeMs
    // 表明上次访问此文件的时间戳,以 POSIX 纪元以来的毫秒数表示。

    stats.mtimeMs
    // 表明上次修改此文件的时间戳,以 POSIX 纪元以来的毫秒数表示。

    stats.ctimeMs
    // 表明上次更改文件状态的时间戳,以 POSIX 纪元以来的毫秒数表示。

    stats.birthtimeMs
    // 表明此文件的创建时间的时间戳,以 POSIX 纪元以来的毫秒数表示。

    stats.atime
    // 表明上次访问此文件的时间戳。

    stats.mtime
    // 表明上次修改此文件的时间戳。

    stats.ctime
    // 表明上次更改文件状态的时间戳。

    stats.birthtime
    // 表示此文件的创建时间的时间戳。
});

监听文件(是否改变):

const fs = require('fs');

//监听文件:
fs.watch('a.text',(eventType,fileName)=>{
    console.log("文件修改即触发本回调函数");
});

//监听目录:{recursive:true}表示监听该目录和子孙目录,还有它们的文件
fs.watch('目录名', {recursive:true}, (eventType,fileName)=>{
    console.log("本目录和子孙目录有增删文件,或它们的文件有修改,都会触发本回调函数");
});

//监听文件:
fs.watchFile('a.text', {persistent:true}, (current,previous)=>{
    console.log('当前的文件状态对象',current);
    console.log('改变前的文件状态对象',previous);
})

删除文件:

const fs = require('fs');

fs.unlink('a.js', (err)=>{
    console.log('删除完成');
})

如果要读取文件中指定字节的内容,则需要以下更复杂的操作:

1、打开文件,获取“文件描述符”:fs.open(path, flags[, mode], callback);

2、在打开文件的回调函数中,用“文件描述符”读取文件指定的内容:fs.read(fd, buffer, offset, length, position, callback);

举个栗子:

//比如:a.text,文件内容:abcdefg hijklmn opqrst uvwxyz
const fs = require('fs');

function open(){
    return new Promise(res=>{
        fs.open('a.text','r',(err,fd)=>{
            res(fd);
        });
    });
}
function read(fd){
    return new Promise(res=>{
        fs.read(fd, Buffer.alloc(15), 0, 15, null, (err,bytesRead,buffer)=>{
            res(buffer);
        });
//fs.read(文件描述符, 空缓冲器, 读取到的数据从缓冲器0索引处开始写入, 读取文件15字节, 从文件何处开始读取, (err, 读取到的字节数, 存有读取数据的缓冲器)=>{});
    });
}

(async ()=>{
    let fd = await open();
    let bf1 = await read(fd);
    let bf2 = await read(fd);
    fs.close(fd, err=>{});  //关闭打开的文件
    console.log(bf1.toString()); //abcdefg hijklmn
    console.log(bf2.toString()); // opqrst uvwxyz
})();

 

最后

以上就是精明柜子为你收集整理的fs(文件系统——文件操作)的全部内容,希望文章能够帮你解决fs(文件系统——文件操作)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部