fs文件系统模块:
fs模块:用来操作文件的模块,它提供了一系列的方法和属性,用来满足用户对文件的操作需求。
fs.readFile()方法,用来读取指定文件中的内容;
fs.writeFile()方法,用来向指定的文件中写入内容。
如果要在JavaScript代码中,使用fs模块来操作文件,则需要使用如下的方式先导入它:
const fs = require('fs')
使用fs.readFile()方法,语法格式:
fs.readFile(path[,options],callback)
参数1:必选参数,字符串,表示文件的路径;
参数2:可选参数,表示以什么编码格式来读取文件;
参数3:必选参数,文件读取完成后,通过回调函数拿到读取的结果。
const fs = require('fs');
// 以utf8的编码格式,读取文件的内容,并打印err(失败返回)和dataStr(成功返回)的值
fs.readFile('./files/1.txt','utf8',function(err,dataStar) {
if (err) {
return console.log('读取文件失败!' + err.message);
}
console.log('读取文件成功!' + dataStr);
})
使用fs.writeFile()方法,语法格式:
fs.writeFile(file,data[,options],callback)
参数1:必选参数,需要指定一个字符串,表示文件的存放路径;
参数2:必选参数,表示要写入的内容;
参数3:选参数,表示以什么编码格式来读取文件;
参数4:必选参数,文件完成后的回调函数。
const fs = require('fs');
// 以utf8的编码格式,读取文件的内容,并打印err(失败返回)和dataStr(成功返回)的值
fs.writeFile('./files/1.txt','hello node.js!',function(err,dataStr) {
if (err) {
return console.log('读取文件失败!' + err.message);
}
// console.log('读取文件成功!' + dataStr);
})
fs模块- 路径动态拼接
在使用fs模块操作文件时,如果提供的操作路径是以./或…/开头的相对路径时,很容易出现路径动态拼接错误的问题。
原因:代码运行时,会以执行node命令时所处的目录,动态拼接出被操作文件的完整路径。
解决方法:直接提供一个完整的文件存放路径
缺点:移植性非常差,不利于维护
完美方法:添加__dirname 表示当前文件所处的目录
fs.readFile(__direname + '/files/1.txt',''utf8',function(err,dataStr){
})