第一点:读取文件
//node组成的三部分,ECMAScript核心+全局成员+核心api成员
//访问核心成员,直接使用require(‘核心成员的名称’),能够导入并使用这些核心成员
const fs = require(‘fs’)
//fs.readFile()
//fs.readFile有三个参数
//1.表示读取的文件的路径
//2.编码格式
//3,当文件读取完成,调用callback回调函数来处理结果
//第一个参数是err对象,err不为null,错误
//第二个参数才是读取成功的结果
fs.readFile(“./files/1.txt”,function(err,data){
console.log(err);
console.log(data);
if(err){
return console.log(“读取文件失败:”+err.message)
}else{
console.log(“读取文件成功:”+data)
}
})
第二点:写入文件
//1.导入fs文件操作模块
//2、调用fs。writeFile写入文件
//1、路径字符串,表示把文件的内容,写入到哪个文件中
//2、要写入的数据,可以给定一个字符串
//3、可选参数,表示要以什么格式写入文件内容,默认utf-8de格式
//文件写完之后的callback回调函数
//在回调函数中,只有一个形参err错误对象
//const fs = require(‘fs’);
//fs.writeFile(‘./files/2.txt’,’1357’,(err)=>{
//如果文件写入失败,则报错
// if (err) return console.log(‘写入文件失败!’ + err.message)
// console.log(‘文件写入成功!’)
//})
注意:文件写入data参数可以以变量形式传递,若内容很多,可以
var a = ‘11111111’;
fs.writeFile(‘./files/2.txt’,a,(err)=>{
}
添加:
先读取,再添加!
fs.readFile(“路径”,“编码”,(err,data)=>{
let atr = data+”555”;
fs.writeFile(“路径”,str,(err)=>{
console。log(err)
}
第三点:追加文件
追加一个路径不存在的文件,会创建并添加内容
//追加文件
const fs = require(“fs”);
//参数:
//路径,追加内容,编码格式,追加失败的回调函数,形参err
fs.appendFile(“./files/2.txt”,”\n246810”,(err)=>{
if (err) return console.log(‘追加文件失败!’ + err.message)
console.log(‘文件写入成功!’)
})
拷贝文件:
const fs = require(“fs”);
fs.copyFile(__dirname+”/files/2.txt”,__dirname+”/files/3-copy.txt”,(err)=>{
if(err) return console.log(“拷贝失败”+err.message);
console.log(“拷贝成功”);
})
拷贝文件,注意文件夹路径
__dirname 指向当前文件
第四点:
文件路径的问题
使用相对路径很容易出现问题
推荐使用 node 中提供的 __dirname 来解决 fs 模块操作文件时候的路径问题
fs.readFile(__dirname+”路径”,……)
//–filename 表示当前这个文件的完整路径,路径中包含了文件名
–dirname表示当前这个文件执行的时候,所处的根目录。只代表一层目录
读取指定目录中所有文件的名称 fs.readdir
path模块的其他属性或者方法
const path = require(‘path’)
var str = ‘c:/a/b/c/1.txt’;
console.log(path.dirname(str));获取文件所在的路径
console.log(path.basename(str));获取文件名称
console.log(path.extname(str));(常用)获取文件的扩展名
只要设计到路径拼接,一定要使用 path.join() 方法
fs.readFile(path.join(__dirname, ‘files/1.txt’), ‘utf8’, (err, dataStr) => {
if (err) return console.log(err.message)
console.log(dataStr)
})