node对文件的读取和修改

 

1:读文件:

readFile()

readFile(path, [optiions, ] callback)

path:路径

options:读取格式

callback:回调函数

2:写文件:

writeFile()

writeFile(path, data, [optiions, ] callback)

path:路径

data: 写入数据内容

options:读取格式

callback:回调函数

// 导入fs模块
const fs = require('fs')

// 调用readFile()读取文件
// 判断文件是否读取成功
fs.readFile(__dirname + '/files/try.txt', 'utf-8', function(err, dataStr) {
    // 看 err 是否为 null 来进行判断
    if (err) {
        return console.log('读取文件失败', err.message)
    } else {
        console.log('读取成功')
    }
})

// 调用writeFile()写入内容,如果写入路径的文件找不到,路径正确会自动创建文件
// 注意:writeFile()不会自动创建路径
// 判断是否写入成功
fs.writeFile(__dirname + '/files/try.txt', '写入文本', 'utf-8', function(err) {
    if (err) {
        return console.log('写入文件失败', err.message)
    }else {
        console.log('写入成功')
    }
})

注意:

关于path的问题,当用 ./ 或者 ../ 开头的相对路径时候,容易出现问题,node会根据当前运行文件的路径来动态的拼接path路径

writeFile()方法可以创建文件但是不能创建路径

writeFile()方法对同一个文件操作的时候会把新的内容覆盖掉旧的内容

解决方法:

  1. 使用绝对路径可以解决这个问题(但是移植性特别差,不利于维护)
  2. node提供的 __dirname 表示当前文件所处的目录
在Vue.js中,Node.js的`fs`模块通常用于服务器端操作,因为它是Node.js的标准库,主要用于处理文件系统相关的任务。如果你要在Vue应用中访问本地文件并进读取修改,一般是在构建工具如Webpack、Electron等环境中运服务脚本,并非直接在浏览器端。 以下是一个简单的例子,说明如何在Node.js环境中通过Vue CLI构建的项目中使用`fs`模块: 1. 首先,在你的Vue项目根目录下创建一个服务文件(例如`src/services/fileService.js`),然后引入`fs`模块: ```javascript const fs = require('fs'); ``` 2. 对于读取文件: ```javascript async function readFile(filePath) { try { const data = await fs.promises.readFile(filePath, 'utf8'); // 使用Promise封装readFile return data; } catch (error) { console.error('Error reading file:', error); throw error; // 或者抛出错误以便上层处理 } } // 调用示例: async function main() { const content = await readFile('./path/to/your/local/file.txt'); console.log(content); } ``` 3. 对于修改文件(这里仅作为示例,实际操作需要谨慎,因为直接修改文件可能会破坏数据一致性): ```javascript function writeFile(filePath, data) { return new Promise((resolve, reject) => { fs.writeFile(filePath, data, 'utf8', (err) => { if (err) { reject(err); } else { resolve(); } }); }); } // 调用示例: async function updateFile() { const newData = 'New content for the file'; try { await writeFile('./path/to/your/local/file.txt', newData); console.log('File updated successfully.'); } catch (error) { console.error('Error writing file:', error); } } main(); // 先读再写,或者分开调用这两个函数 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值