普通文件读写
const fs = require('fs')
const path = require('path')
const fileName = path.resolve(__dirname, 'data.txt')
// 读取文件
fs.readFile(fileName, (err, data) => {
if (err) {
console.error(err)
return
}
// data是二进制,类型,需要转换为字符串
console.log(data.toString())
})
// 写入文件
const content = '这是要写入的内容\n'
const opt = {
flag : 'a', //追加写。覆盖用 'w'
}
fs.writeFile(fileName, content, opt, (err) => {
if (err) {
console.log(err)
}
})
// 判断文件是否存在
fs.exists(fileName + '1', (exist) => {
console.log('exist', exist)
})
如果文件特别大的情况写采用stream方式
使用stream可提高性能,节省使用cpu和内存(比如视频不用完全下载下来就可以逐步加载并播放)
// 复制文件
const fs = require('fs')
const path = require('path')
const fileName1 = path.resolve(__dirname, 'data.txt')
const fileName2 = path.resolve(__dirname, 'data-bak.txt')
const readStream = fs.createReadStream(fileName1)
const writeStream = fs.createWriteStream(fileName2)
readStream.pipe(writeStream)
readStream.on('data', chunk => {
console.log(chunk.toString())
})
readStream.on('end', () => {
console.log('copy done')
})