博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
nodejs(1) fs 和 path
阅读量:4636 次
发布时间:2019-06-09

本文共 2891 字,大约阅读时间需要 9 分钟。

文件的操作

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', '\n888', 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)})

 

转载于:https://www.cnblogs.com/houfee/p/10281232.html

你可能感兴趣的文章
(循环练习题) 五只猴子分桃子
查看>>
4,fail-fast错误机制
查看>>
【译】为什么要写super(props)
查看>>
java_native关键字
查看>>
周一02.3运行python程序的两种方式
查看>>
VS各种错误集成总结,持续更新
查看>>
获得屏幕像素以及像素密度
查看>>
2018考研英语:10篇必背的真题文章
查看>>
int与string转换
查看>>
用easyui动态创建一个对话框
查看>>
adb命令 判断锁屏
查看>>
centos7下安装docker
查看>>
推荐一个MacOS苹果电脑系统解压缩软件
查看>>
命令行编译运行CSharp文件
查看>>
HDOJ 1060 Leftmost Digit
查看>>
1035等差数列末项计算
查看>>
ASP.NET MVC 2示例Tailspin Travel
查看>>
nonatomic, retain,weak,strong用法详解
查看>>
第10周进度条
查看>>
编写函数求两个整数 a 和 b 之间的较大值。要求不能使用if, while, switch, for, ?: 以 及任何的比较语句。...
查看>>