nodejs fs 和 path
Posted houfee
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nodejs fs 和 path相关的知识,希望对你有一定的参考价值。
1、读文件
// 使用 require 方法,导入 fs 模块 操作文件 const fs = require(‘fs‘) fs.readFile(‘./files/11.txt‘, ‘utf-8‘, (err, dataStr) => { // 判断 err 能否转为 true,如果 能,则证明读取文件出错了 if (err) return console.log(‘读取文件失败:‘ + err.message) console.log(dataStr) }) /* * fs.readFile(path[, options], callback)接收三个参数 * path:文件路径【必须】 * options:文件编码【可选,不选为buffer编码,可以设定‘utf-8’】 * callback:异步地读取文件的全部内容。【必选】function(err, data) { err【失败】,【data】成功} * 如果读取文件成功,则 err 为 null, data 是成功之后的数据 * err 是 Error 类型的一个对象,console.log(err instanceof Error) * console.log(err.message) * 如果读取失败,则 err 为一个错误对象, data 为 undefined * Buffer 是二进制的数据,只不过在展示的时候,为了方便展示,操作系统,帮我们把 二进制的 Buffer,转换为了 16进制的格式 * console.log(data instanceof Buffer) * console.log(data.toString()) */
2、写入文件
// fs.writeFile(file, data[, options], callback) const fs = require(‘fs‘) // 参数1: 要把文件写入到哪个路径中 // 参数2: 要写入的内容 // 参数3: 默认为 ‘utf8‘ fs.writeFile(‘./files/2.txt‘, ‘666‘, err => { if (err) return console.log(‘写入文件失败!‘ + err.message) console.log(‘写入文件成功!‘) })
3、追加内容
// fs.appendFile(path, data[, options], callback) const fs = require(‘fs‘) // 参数1: 要把文件写入到哪个路径中 // 参数2: 要写入的内容 // 参数3: 默认为 ‘utf8‘ fs.appendFile(‘./files/3.txt‘, ‘ 888‘, err => { if (err) return console.log(‘追加失败!‘ + err.message) console.log(‘ok‘) })
路径问题
console.log(__dirname) // 文件夹绝对路径 console.log(__filename) // 文件名绝对路径 // 结论:今后在调用 fs 模块,操作文件的时候,如果要提供路径了,一定不要使用相对路径; // 一定要使用 __dirname 做一层拼接 fs.readFile(__dirname + ‘/files/1.txt‘, ‘utf-8‘, (err, dataStr) => { if (err) return console.log(‘读取文件失败:‘ + err.message) console.log(dataStr) })
fs 和 path 结合使用
1、读取文件信息
// fs.stat(path[, options], callback) const fs = require(‘fs‘) // 读取文件信息 fs.stat(__dirname + ‘/files/1.txt‘, (err, stats) => { if (err) return console.log(‘读取文件信息失败!‘ + err.message) // 获取文件大小 单位是 字节 Byte console.log(stats) console.log(stats.size) // 获取文件的创建时间 console.log(stats.birthtime) // 判断是否是一个文件 console.log(stats.isFile()) // 判断是否是目录 console.log(stats.isDirectory()) }) // 读取路径信息 fs.stat(__dirname, (err, stats) => { if (err) return console.log(err.message) // 不能直接使用 stats 获取目录的大小 console.log(stats.size) })
2、读取指定目录下的所有文件名称
// fs.readdir(path[, options], callback) const fs = require(‘fs‘) fs.readdir(__dirname, (err, filenames) => { if (err) return console.log(err.message) console.log(filenames) })
3、复制文件
// fs.copyFile(src, dest[, flags], callback) const fs = require(‘fs‘) // 第一个参数:要复制的文件路径 // 第二个参数:要存放的路径 // 参数3: 回调函数,包含一个 err 错误对象 fs.copyFile(__dirname + ‘/files/1.txt‘, __dirname + ‘/files/1-copy.txt‘, err => { if (err) return console.log(‘复制失败!‘) console.log(‘ok‘) })
4、读文件和path模块的关系
const fs = require(‘fs‘) const path = require(‘path‘) console.log(path.join(__dirname, ‘./files/1.txt‘)) // 记住:今后只要涉及到路径片段的拼接,一定要使用 path.join() 方法 fs.readFile(path.join(__dirname, ‘./files/1.txt‘), ‘utf-8‘, (err, dataStr) => { if (err) return console.log(err.message) console.log(dataStr) })
以上是关于nodejs fs 和 path的主要内容,如果未能解决你的问题,请参考以下文章
NodeJS入门:常用模块汇总之(path / fs / os / url模块)