Node 中文件读取
简单文件读取
/*
* fs.readFile(path[,options],callback)
* --path : 要读取文件的路径 + 文件名 + 后缀
* --options : 配置对象(可选)
* --callback : 回调
* --err : 错误对象
* --data: 读取出来的数据
* */
详细代码如下
let fs = require('fs')
fs.readFile(__dirname + '/index.txt',function (err,data){
if (err){
console.log(err)
}else {
//获取txt 文件中的内容 要加上 toString()
console.log(data.toString())
}
// 为什么读取出来的是 Buffer 因为用户存放的不一定是纯文本
})
流式文件读取
/*
* fs.createReadStream(path[,options])
* --path:要读取的文件路径 + 文件名 + 后缀
* --options:
* --flags
* --encoding
* --fd
* --mode
* --autoClose
* --emitClose
* --start :起始偏移量
* --emd : 结束偏移量
* --highWaterMak : 每次读取数据大小默认值,默认值是 64 * 1024
* */
详细代码如下
let {createReadStream,createWriteStream} = require('fs')
// 创建一个可读流
let rs = createReadStream('./index.txt')
// 创建一个可写流
let ws = createWriteStream('./dome.txt')
// 只要用到流,就必须检测流的状态
rs.on('open',function (){
console.log('可读流打开了')
})
rs.on('close',function (){
console.log('可读流关闭了')
})
ws.on('open',function (){
console.log('可写流打开了')
})
ws.on('close',function (){
console.log('可写流关闭了')
})
// 绑定一个可读流绑定一个 data 事件,就会触发可读流自动读内容
rs.on('data',function (data){
console.log(data)
ws.write(data)
})
ws.close()