// 文件系统模块 负责读写文件
let fs = require('fs')
let log = (...value) => console.log(...value)
// readFile(异步读取的文件, 'utf-8', (err, data) => {} )
// 如果不给 utf-8 默认输出 Buffer 格式
fs.readFile('t.txt', 'utf-8', (err, data) => {
if (err) {
log(err)
} else {
log(data)
}
})
// 以默认格式 Buffer 读取文件
fs.readFile('t.txt', (err, data) => {
if (err) {
log(err)
} else {
// 默认返回 Buffer 格式数据
// 本例中返回 <Buffer e6 b5 8b e8 af 95 e6 95 b0 e6 8d ae>
// 格式转换使用 toString()
log(data)
// 文件大小 xxx字节
log(data.length)
// Buffer 格式转成普通字符
data.toString()
// 字符串转 Buffer格式
new Buffer('小花')
// Buffer格式转 Base64
new Buffer('小花').toString('base64')
// Base64 转普通字符串
new Buffer('base64格式的字符串', 'base64').toString()
}
})
// 读取 二进制文件
fs.readFile('./images/lx1.png', (err, data) => {
if (err) {
log(err)
} else {
// 图片字节数
data.length
// Buffer -> base64
new Buffer(data).toString('base64')
}
})
// 同步读取模式 不接收回调函数 直接返回读取的内容
// readFileSync(文件): 同步读取文件 默认返回 Buffer格式
fs.readFileSync('t.txt')
// 给 utf-8格式以后 返回 普通文本
fs.readFileSync('t.txt', 'utf-8')
let t1 = '我是要被写入的文本.'
// writeFile(文件名, 写入内容, 回调函数只有一个err参数)
fs.writeFile('newFile.txt', t1, err => {
if (err) {
log(err)
} else {
log('写入成功.')
}
})
// 同步方式写入数据 没有回调函数
fs.writeFileSync('newFileSync.txt', t1)
// stat 获取文件大小 创建时间 是否是目录 文件等信息
fs.stat('t.txt', (err, stat) => {
if (err) {
log(err)
} else {
// 是否是文件
stat.isFile()
// 是否是目录
stat.isDirectory()
if (stat.isFile()) {
// 文件大小
stat.size
// 创建时间
stat.birthtime
// 修改时间
stat.mtime
}
}
})
// 同步读取文件 没有回调函数 直接返回文件信息对象
fs.statSync('t.txt')
// readFile 读文件
fs.readFile('m.mp4', (err, data) => {
if (err) {
log(err)
} else {
// writeFile 把读取的文件内容 写入到m2.mp4
fs.writeFile('m2.mp4', data, err => {
if (err) {
log(err)
} else {
log('写入成功.')
}
})
}
})
//
/**
* readdir(文件路径, fn(err, files))
files: 以arr形式返回读取的目录文件列表
*/
fs.readdir('文件路径', (err, files) => {
})