当前位置: 首页 > news >正文

网站备案要求企业 个人今晚日本比分预测

网站备案要求企业 个人,今晚日本比分预测,建模教程,企业网站 dede phpcms 帝国在Node.js中,fs模块提供了多种方法来处理文件和目录操作,使得数据的持久性保存和文件管理变得简单。下面将介绍文件读写、文件复制、文件移动、文件重命名、文件删除、文件夹创建与删除以及查看资源状态等常用操作。 首先,在使用写入和读取功…

在Node.js中,fs模块提供了多种方法来处理文件和目录操作,使得数据的持久性保存和文件管理变得简单。下面将介绍文件读写、文件复制、文件移动、文件重命名、文件删除、文件夹创建与删除以及查看资源状态等常用操作。

首先,在使用写入和读取功能前,我们需要导入fs模块,这是所有文件操作的基础:

const fs = require("fs");

一、文件写入

1. 异步写入

使用fs.writeFile方法异步写入文件。例如,写入一个三字经文件:

fs.writeFile("./三字经.txt", "人之初,性本善。", (err) => {if (err) {console.log("写入失败");return;}console.log("写入成功");
});
console.log("异步写入操作已发起");

注意console.log("异步写入操作已发起"); 会在 writeFile 回调之前执行,因为 writeFile 是异步的。

2. 同步写入

如果需要同步执行,可以使用fs.writeFileSync方法:

try {fs.writeFileSync("./data.txt", "text");console.log("同步写入成功");
} catch (err) {console.error("同步写入错误:", err);
}
console.log("同步写入操作已完成");

这里的console.log("同步写入操作已完成");会在writeFile回调之后执行,因为writeFileSync是同步的。

3. 异步追加写入

使用fs.appendFile方法可以异步追加内容到文件末尾:

fs.appendFile("./三字经.txt", "性相近,习相远。", (err) => {if (err) {console.log("追加失败");return;}console.log("追加成功");
});
4、同步追加写入

同样,fs.appendFileSync方法用于同步追加写入:

try {fs.appendFileSync("./data.txt", "\r\n追加text");console.log("同步追加成功");
} catch (err) {console.error("同步追加错误:", err);
}
5. 使用fs.writeFile实现追加写入

通过设置flag: 'a'选项,fs.writeFile也可以用于追加写入:

fs.writeFile("./三字经.txt", "\r\n苟不教,父之过。", { flag: 'a' }, (err) => {if (err) {console.error("追加写入失败:", err);return;}console.log("追加写入成功");
});
6. 流式写入

对于大文件或需要持续写入的数据,使用流(stream)是一个更好的选择。使用fs.createWriteStream创建一个写入流并写入数据:

const ws = fs.createWriteStream('./静夜思.txt');ws.write('窗前明月光,\r\n'); 
ws.write("疑是地上霜。\r\n");
ws.write("举头望明月,\r\n"); 
ws.write("低头思故乡。\r\n"); // 关闭流,确保数据完全写入文件ws.end(() => {console.log("流式写入完成");
});
//ws.close()

通常不需要显式调用ws.close()来关闭写入流,因为close方法不会等待数据被刷新到磁盘,可能会导致数据未完全写入文件。

可以使用ws.end(),它会在数据写入完成后自动关闭流,确保数据完全写入文件。。

二、文件读取

1、异步读取

使用fs.readFile方法可以异步读取文件内容。异步读取不会阻塞事件循环,这对于需要处理大量I/O操作的Node.js应用至关重要:

// 异步读取 radFile(这里以 "三字经.txt" 为例)
fs.readFile("./三字经.txt", (err, data) => {if (err) {console.log("读取失败");return;}console.log(data.toString());
});

2、同步读取

使用fs.readFileSync方法可以实现文件的同步读取。但请注意,同步读取会阻塞事件循环,直到文件读取完成。因此,在实际应用中,尤其是服务器应用中,通常不推荐使用同步读取:

// 同步读取 radFileSync(这里以 "三字经.txt" 为例)let data = fs.readFileSync("./三字经.txt");console.log(data.toString());

3、流式读取

流式读取更加灵活高效,它可以逐块读取文件内容,而不是一次性将整个文件加载到内存中。这对于处理大文件非常有用

使用 fs.createReadStream 方法可以创建一个可读流。

// 流式读取 createReadStream(这里以 "三字经.txt" 为例)
const rs = fs.createReadStream('./三字经.txt');// 绑定data事件,每次读取到数据块时触发
rs.on('data', chunk => {console.log(chunk);// chunk 是一个 Buffer 对象,代表读取到的数据块// 处理文本文件时,可将Buffer对象转换为字符串:chunk.toString()
});// 绑定end事件,读取完成时触发
rs.on('end', () => {console.log("读取完成");
});// 绑定error事件,读取过程中发生错误时触发
rs.on('error', err => {console.error("读取错误:", err);
});

建议至少绑定 error 事件来避免未捕获的异常导致程序崩溃

三、文件复制

文件复制可以通过读取源文件内容并写入到目标文件来实现,也可以使用流来更高效地处理大文件。

1、同步复制

// 读取文件内容
let data = fs.readFileSync("./三字经.txt");
// 写入文件
fs.writeFileSync("./复制三字经.txt", data)

2、流式操作

占用内存空间更小,使用流更高效处理大文件

// 创建读取流对象
const rs = fs.createReadStream('./三字经.txt')
// 创建写入流对象
const ws = fs.createWriteStream('./复制三字经2.txt');
// // 绑定data事件
rs.on('data', chunk => {ws.write(chunk)
})// 或者使用 pipe() 方法const rs2 = fs.createReadStream('./三字经.txt');
const ws2 = fs.createWriteStream('./复制三字经3.txt');
rs2.pipe(ws2);

四、文件移动与重命名

使用fs.renamefs.renameSync方法可以实现文件的移动和重命名。

1、异步操作

fs.rename("oldname.txt", "newname.txt", (err) => {if (err) {console.log("重命名失败");return;}console.log("重命名成功");
});fs.rename("path/to/oldfile.txt", "path/to/newfolder/newfile.txt", (err) => {if (err) {console.log("移动失败");return;}console.log("移动成功");
});

2、同步操作

fs.renameSync("oldname.txt", "newname.txt");fs.renameSync("path/to/oldfile.txt", "path/to/newfolder/newfile.txt");

五、文件删除

使用fs.unlink/fs.unlinkSyncfs.rm/fs.rmSync方法删除文件。

1、异步操作

fs.unlink("file.txt", (err) => {if (err) {console.log("删除失败");return;}console.log("删除成功");
});// Node.js 14.14.0及以上版本可以使用fs.rmfs.rm("file.txt", (err) => {if (err) {console.log("删除失败");return;}console.log("删除成功");
});

2、同步操作

fs.unlinkSync("file.txt");fs.rmSync("file.txt");

六、查看资源状态

使用fs.statfs.statSync方法查看文件或目录的状态。

1、异步操作

fs.stat("file.txt", (err, stats) => {if (err) {console.log("获取状态失败");return;}console.log("操作成功", stats);// 资源状态console.log(stats.isFile()); // 是否为文件console.log(stats.isDirectory()); // 是否为目录
});

2、同步操作

const stats = fs.statSync("file.txt");

七、文件夹操作

1、创建文件夹

使用fs.mkdirfs.mkdirSync方法创建文件夹,{ recursive: true }用于递归创建:

fs.mkdir("newfolder", { recursive: true }, (err) => {if (err) {console.log("创建失败");return;}console.log("创建成功");
});fs.mkdirSync("newfolderSync", { recursive: true });

2、读取文件夹

使用fs.readdirfs.readdirSync方法读取文件夹内容。

fs.readdir("folder", (err, files) => {if (err) {console.log("读取失败");return;}console.log(files);
});const filesSync = fs.readdirSync("folder");
console.log(filesSync);

3、删除文件夹

使用fs.rmdirfs.rm方法删除文件夹,{ recursive: true, force: true }用于递归强制删除:

fs.rmdir("folder", { recursive: true }, (err) => {if (err) {console.log("删除失败");return;}console.log("删除成功");
});// Node.js 14.14.0及以上版本fs.rm("folder", { recursive: true, force: true }, (err) => {if (err) {console.log("删除失败");return;}console.log("删除成功");
});
http://www.wooajung.com/news/23169.html

相关文章:

  • 不属于企业网站建设基本标准的是免费建自己的网站
  • 网站后台程序开发教程北京网站优化方法
  • 北京免费网站制作精准推广的渠道有哪些
  • 网站服务器维护键词优化排名
  • 网站后台账号密码一般网站推广要多少钱
  • 兰州做网站客户恶意点击软件有哪些
  • 做网站客户会问什么问题关键词
  • 门户网站建设成都在线看seo网站
  • 哪个网站可以做条形码搜索引擎排名优化价格
  • 做自动化设备哪个网站公司推广
  • 代办网站备案东莞百度推广排名
  • html5网站优点厦门网站的关键词自动排名
  • 手机端自定义做链接网站私域营销
  • 如何快速建立网站最权威的品牌排行榜网站
  • 做网站在哪找靠谱新手怎么做网页
  • 长春网站制作培训网络推广工作好吗
  • 怎么做多个网站单点登录世界足球排名最新
  • av做爰免费网站seo综合排名优化
  • 广安网站制作设计如何优化搜索关键词
  • 莆田网站建设收费标准实时新闻热点
  • 软件开发项目360网站关键词排名优化
  • win7建设网站关键词搜索次数查询
  • 新疆建筑工程网站西安seo培训机构
  • 动态网站设计流程做任务赚佣金的平台
  • 零陵区住房和城乡建设局网站搜索引擎优化公司排行
  • 微信连接微网站吗网络营销怎么做?
  • 西湖网站建设重庆企业网站排名优化
  • 让别人做网站要注意什么6服务营销策划方案
  • 如何找网站做推广正规网络公司关键词排名优化
  • 软件公司工资高吗日照网站优化公司