// 注意:同名/同类型文件多次创建并不会新增,而是覆盖机制

首先引入 node.js 为我们写好的核心模块 fs ,接着使用 writeFile API 进行参数配置, 第一个参数(‘./hello.doc’) 为文件位置/类型/命名, 第二个参数(‘hello’) 为文件默认内容。

需要注意的是, 如果创建文件成功,error 的值是 null ,你可以使用 console.log 来查看 error 在何是发生改变。
在这里插入图片描述

有必要说一下语法及参数,剩下的按照参数配置进行业务编写即可。

fs.open(path, flags[, mode], callback)
  1. path:文件的路径
  2. flags:文件打开的行为,具体值详表格
  3. mode:设置文件模式(权限),文件创建默认权限为 0666(可读,可写)
  4. callback:回调函数,带有两个参数如:callback(err, fd)
flags描述
r以读取模式打开文件。如果文件不存在抛出异常。
r+以读写模式打开文件。如果文件不存在抛出异常。
rs以同步的方式读取文件。
rs+以同步的方式读取和写入文件。
w以写入模式打开文件,如果文件不存在则创建。
wx类似 ‘w’,但是如果文件路径存在,则文件写入失败。
w+以读写模式打开文件,如果文件不存在则创建。
wx+类似 ‘w+’, 但是如果文件路径存在,则文件读写失败。
a以追加模式打开文件,如果文件不存在则创建。
ax类似 ‘a’, 但是如果文件路径存在,则文件追加失败。
a+以读取追加模式打开文件,如果文件不存在则创建。
ax+类似 ‘a+’, 但是如果文件路径存在,则文件读取追加失败。

打开刚刚创建的 hello.doc 文件:

// 引入核心模块(fs)
var fs = require('fs')
// API
fs.open('./input.txt', 'r', (err,fd) => {
    // 打开失败
    if(err){
        console.log(`文件打开失败:${err}`)
    // 打开成功
    console.log(`文件打开成功!${fd}`)

我们可以通过 缓冲区(Buffer) / writeFile方法 来为文件写入二进制内容。

fs.writeFile(file, data[, options], callback)

writeFile 直接打开文件默认是 w 模式,所以如果文件存在,该方法写入的内容会覆盖旧的文件内容。

  1. file:文件名或文件描述符。
  2. data:要写入文件的数据,可以是 String(字符串) 或 Buffer(缓冲) 对象。
  3. options:该参数是一个对象,包含 {encoding, mode, flag}。默认编码为 utf8, 模式为 0666 , flag 为 ‘w’
  4. callback:回调函数,回调函数只包含错误信息参数(err),在写入失败时返回。
// 引入读写核心模块
var fs = require('fs')
// 向文件中写入内容(利用缓冲区解决二进制数据问题)
var data = '\n I am input content \n'
var data = new Buffer(data)//放入缓冲区
// API
fs.writeFile('input.txt', data, {flag: 'a'}, (err) => {
    // 写入失败
    if(err){
        console.log(`文件写入失败(${err})`)
    // 写入成功
    console.log(`写入成功!`)

将数据追加到文件,需要注意的是,如果文件尚不存在则会创建该文件。

fs.appendFile(filename,data,[options],callback);
// 引入读写核心模块
var fs = require('fs')
// node.js 规定 data 可以是 string / buffer
var data = '\n 我是追加的内容! \n'
var data = new Buffer(data)//这里使用缓冲区(buffer)
// API
fs.appendFile('input.txt', data, (err) => {
    // 追加失败
    if(err) throw err
    // 追加成功
    console.log('追加内容成功!')

读取文件中的内容。

fs.read(fd, buffer, offset, length, position, callback)
  1. fd:通过 fs.open() 方法返回的文件描述符。
  2. buffer:数据写入的缓冲区。
  3. offset:缓冲区写入的写入偏移量。
  4. length:要从文件中读取的字节数。
  5. position:文件读取的起始位置,如果 position 的值为 null,则会从当前文件指针的位置读取。
  6. callback:回调函数,有三个参数err, bytesRead, buffer,err 为错误信息, bytesRead 表示读取的字节数,buffer 为缓冲区对象。

input.txt 文件内容

// 引入读写核心模块
var fs = require('fs')
// 读取 input.txt 文件(异步非阻塞式)
fs.readFile('input.txt', (err,data) => {
    // 读取失败
    if(err) throw err
    // 读取成功
    console.log('- - - - - - - - - - - - - - - - - - - - -')
    console.log(`input.txt:${data}`)
    console.log('- - - - - - - - - - - - - - - - - - - - -')

创建一个目录,需要注意的是,在 Windows 上,在根目录上使用 fs.mkdir() (即使使用递归参数)也会导致错误。

fs.mkdir(path[, options], callback)
  1. path:文件路径。
  2. options:recursive - 是否以递归的方式创建目录,默认为 false。mode - 设置目录权限,默认为 0777。
  3. callbac:回调函数,没有参数。
// 引入读写核心模块
var fs = require('fs')
// 注意:目录的根必须存在
console.log('即将开始创建...')
fs.mkdir("/data/new", (err) => {
    // 创建失败
    if(err) throw err
    // 创建成功
    console.log('文件创建成功!')

在这里插入图片描述
注意:如果创建的目录已经存在,则会提示如下Error:

Error: EEXIST: file already exists, mkdir 'C:\data\new'

删除一个已经存在的目录,需要注意的是,在递归模式中,如果 path 不存在则不报告错误,并且在失败时重试操作。

fs.rmdir(path, callback)
  1. path:文件路径。
  2. callback:回调函数。
// 引入读写核心模块
var fs = require('fs')
// 删除前一个创建的目录(/data/new)
console.log('准备执行删除目录操作')
fs.rmdir("/data/new", (err) => {
    // 删除失败
    if(err) throw err
    // 删除成功
    console.log('删除目录成功!')
                    注意:以下所有示例均是异步语法!注意:以下所有示例均是异步语法!创建文件node.js 允许我们在计算机本地创建文件,例如创建一个 word 文件:// 引入核心模块(fs)var fs = require('fs')// APIfs.writeFile('./hello.doc', 'hello', (error) => {      // 创建失败    if(er...
 1. fs.stat 检测是文件还是目录(目录 文件是否存在)
 2. fs.mkdir 创建目录 (创建之前先判断是否存在)
 3. fs.writeFile 写入文件(文件不存在就创建,但不能创建目录)
 4. fs.appendFile 写入追加文件
 5.fs.readFile 读取文件
 6.fs.readdir 读取目录
 7.fs.rename 重命名
 8. fs.rmdir 删除目录
 9. fs.unlink 删除文件
var fs=require('fs');  //fsnode.js的核心模块,不用下载安装,可以直接引入
//1. f
    readFile readFileSync(同步方法)   	读取内容
    writeFile writeFileSync(同步方法) 	写入文件	
    appendFile appendFileSync(同步方法)  追加内容	
    unlink unlinkSync(同步方法) 			删除文件
    mkdir mkdirSync (同步方法) 	
				
Node.js 中,可以使用 fs 模块来创建文件流。 要创建文件流,可以使用 fs.createReadStream() 方法来读取文件,或使用 fs.createWriteStream() 方法来写入文件。 例如,以下代码演示了如何使用 fs.createReadStream() 方法来读取文件并使用 pipe() 方法将其写入另一个文件: const fs = require('fs')...
console.log(`mkdir ${mkdir} file failed~`); } else { console.log(`mkdir ${mkdir} file success~`); 读取目录 如果读取的目录下有子目录或子文件,将会把子目录或子文件的文件名
本文实例讲述了node.js基于fs模块对系统文件及目录进行读写操作的方法。分享给大家供大家参考,具体如下: 如果要用这个模块,首先需要引入,fs已经属于node.js自带的模块,所以直接引入即可 var fs = require('fs'); 1.读取文件readFile方法使用 fs.readFile(filename,[option],callback) 方法读取文件。 参数说明: filename String 文件名 option Object   encoding String |null default=null   flag String default=’r’ callb
let tsxData = ` import { useRef, useEffect, useState, FC } from 'react'; import { Form, Input, Popup, Button, Radio, TextArea } from 'antd-mobile'; import styles from './index.les
您好,关于fs-extra的使用,您需要先安装fs-extra模块,可以使用npm命令进行安装。安装完成后,您可以在您的Node.js代码中使用require方法引入fs-extra模块。 简单的读文件和写文件代码示例如下: ```javascript const fse = require('fs-extra') fse.readFile('./file.txt', 'utf-8') .then(data => { console.log(data) .catch(err => { console.error(err) ```javascript const fse = require('fs-extra') fse.writeFile('./file.txt', 'Hello world', 'utf-8') .then(() => { console.log('Successfully wrote to file') .catch(err => { console.error(err) 以上示例使用了fs-extra的readFile和writeFile方法,其中第一个参数是文件路径,第二个参数是读写文件的编码格式,可以省略不填,默认为utf-8。 希望能够帮助您,如果您有其他问题或需要更详细的解答,请随时提出。
vue-element-admin - 克隆项目后 npm install 装包时报错:code 128 An unknown git error occurred(完美解决方案,100% 解决!) CSDN-Ada助手: 非常感谢您分享这篇解决 vue-element-admin npm install 报错问题的博客,相信会对很多博主有所帮助。同时也鼓励您继续分享关于前端开发的技术经验,建议您可以写一篇关于前端项目构建工具的博客,比如 Webpack、Gulp 等,分享一下您的使用经验和注意事项。期待您的更多精彩内容! 2023年博客之星「城市赛道」年中评选已开启(https://activity.csdn.net/creatActivity?id=10470&utm_source=blog_comment_city ), 博主的原力值在所在城市已经名列前茅,持续创作就有机会成为所在城市的 TOP1 博主(https://bbs.csdn.net/forums/blogstar2023?typeId=3152981&utm_source=blog_comment_city),更有丰厚奖品等你来拿~。 uniapp - 超详细 H5 网页引入百度地图教程,附地图示例 / 获取当前设备定位的省市区、详细地址、经纬度信息 / 用户当前 IP 属地定位地理位置等等(新手小白快速上手,详细配置及使用全流程) 小绿53514: 不愧花钱了...高质量很快搞定表情包 uniapp - 将 uni.request() 请求改为 “同步“ 执行,支持在【纯js文件】与【vue页面】将 uni.request 网络请求从 “异步“ 改为 “同步“(完美解决方案 详细示例 街尾杂货店&: 终于解决js文件内异步请求的问题了,订了 微信小程序 - [完整源码] 全屏左右菜单联动效果,左侧分类与右侧内容联动,类似美团饿了么的点餐页面 “左边菜单,右边内容“ 效果(开箱即用的示例源码,代码干净整洁且注释详细) 感谢支持,有任何技术问题欢迎提问。 uni-app - H5 通过 uni.uploadFile() 上传 Blob 文件路径图片图像,文件没有后缀扩展名(上传图片到服务端文件没有后缀名,服务端判断是无效的后缀名文件)终极且完美解决方案 想尝一尝被打赏的味道: 这个函数有点贵,哈哈哈。 微信小程序 - 实时监听路由发生变化,当页面跳转发生变化时执行一段代码或函数,可获取目标页面的路径 URL 、路由参数、跳转方式、该页面的配置等(支持 “全局“ 和 “局部“ 两种写法) 微信小程序 - 签到打卡旋转 3D 动画功能,仿钉钉打卡签到时 “容器“ 动画翻转效果(超详细完整示例源码教程,代码简洁、丝滑流畅、示例复制即用) Vue - 实现 “当前日期“ 加上 “N天“ 后的日期,即某个日期加几天后的日期,支持自定义的当前日期(如果不想用当前日期,可自己传入一个)(原生 JS 实现,无任何第三方依赖,支持任何前端项目)