操作文件
背景
-
浏览器中的js没有操作文件的能力,但是node中的有
-
fs file system 文件系统
-
在node中想要用文件操作,就必须引入fs核心模块
-
fs中提供了所有文件操作相关的API
readFile使用
-
使用require 来加载js
var fs=require('fs');
-
读取文件使用readFile 其中放了两个参数
参数一:要读取的文件名称
参数二:一个回调函数
fs.readFile('./test.js',function(error,data){
console.log(data);
})-
error
读取成功 为null
读取失败 为错误对象
-
data
读取成功 为读取到的数据
读取失败 为错误对象
但是如果按照上面那样输出,文件中存储的是二进制,输出得到的是十六进制数,不论哪个都看不懂
为了输出正常的数,需要写成data.toString()
但是实验发现,汉字还是输出为一个个格子而不是正常的数,但是英文就是正常的
-
writeFile使用
-
仍用require来加载js
-
读取文件用writeFile
参数一:文件路径
参数二:想要写入的内容
参数三:回调函数 error
成功 null 失败 错误对象
fs.writeFile('./test.txt','hello node.js',function(error){
if(error){
console.log(error);//error输出的是错误对象信息
console.log('读取文件失败');
}else{
console.log(data.toString());
}
})
write read 的回调函数
-
在read中如传入的文件名对应的文件并不存在,则会在对应的文件目录下创建该文件名的新文件,并不会报错
-
在write中传入的文件名对应的文件不存在,则会报错
❗其中传参的位置一定是先error再data,否则不会输出