导入文件模块
无论是同步还是异步读、写文件都必须要导入文件模块。
let fs = require('fs');
异步读文件
异步读取文件数据方法:
fs.readFile(path[, options], callback)
- path:文件名
- options:
- encoding:编码格式,默认为null
- flag: 文件系统标志 默认为‘r’,表示打开文件用于读取,如果文件不存在,则发生异常。
- callback(err,data) data表示读取到的文件数据
let fs = require('fs');
fs.readFile('demo.txt','utf-8',(err,data)=>{
if(!err){
console.log(data);
}else{
console.log(err);
}
});
同步读文件
同步读取文件数据方法:
fs.readFileSync(path[, options])
- path:文件名
- options:
- encoding:编码格式,默认为null
- flag: 文件系统标志 默认为‘r’
- 返回值 String
let data = fs.readFileSync('demo.txt','utf-8');
如果同步读取文件发生错误时,需要使用try…catch捕获错误。
try{
let data = fs.readFileSync('demo.txt','utf-8');
}catch(err){
console.log(err);
}
异步写文件
异步写文件数据方法:
fs.writeFile(file, data[, options], callback)
- file 文件名
- data 写入文件的数据
- 设置编码,和写入方式 ,默认写入方式‘w’,表示写入文件,如果文件不存在,就创建文件,如果文件存在则会覆盖文件中原有的数据。
- callback err捕获写入文件时的异常信息
let fs = require('fs');
let data = 'hello world';
fs.writeFile('demo2.txt',data,err=>{
if(!err){
console.log('写入成功');
}else{
console.log(err);
}
});
同步写入文件
同步写文件数据方法:
fs.writeFileSync('demo2.txt',data);
由于Node环境执行的JavaScript代码是服务器端代码,所以,绝大部分需要在服务器运行期反复执行业务逻辑的代码,必须使用异步代码,否则,同步代码在执行时期,服务器将停止响应,因为JavaScript只有一个执行线程。 服务器启动时如果需要读取配置文件,或者结束时需要写入到状态文件时,可以使用同步代码,因为这些代码只在启动和结束时执行一次,不影响服务器正常运行时的异步执行。