概述
读取文件:
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(文件系统——文件操作)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复