nodejs-fs文件操作

340 阅读1分钟

1.文件读取

fs.readFile(path[,options],callback)

  • path 读取的文件路径
  • options 可选的参数 默认为null 其实是buff
  • callback 回调函数
    • err:错误对象
    • data:具体的值
const fs=require('fs')

fs.readFile('./files/1.txt','utf8',(err,data)=>{
    if(err) return console.log(err.message)
    console.log(data)
    //显示转换
    //console.log(data.toString())
    //隐式转换
    //console.log(data+'')
})

2.文件写入

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

  • file 写入的文件路径
  • data 写入的数据
  • options 可选的参数 默认为utf8
  • callback 回调函数
  • err 错误对象
const fs=require('fs')

fs.writeFile('./files/2.txt','你是最棒的',err=>{
    if(err) return console.log(err.message)
    console.log('写入成功')
})

3.文件拷贝

  • fs.copyFile(src, dest[,mode],callback) v8.5.0+
  • src 要拷贝的文件路径
  • dest 输出的文件路径
  • mode 可选的参数
  • callback 回调函数
  • err 错误对象
 const fs = require('fs')
 
  fs.copyFile('./files/1.txt', './files/1-copy.txt', err => {
    if (err) return console.log(err.message)
    console.log('拷贝成功')
  })

4.path路径处理

const fs = require('fs')
const path = require('path')
console.log(__dirname)//D:\千锋\第三阶段\老师\day01\code
// console.log(__filename)//D:\千锋\第三阶段\老师\day01\code\04-path路径处理.js

// const abspath = __dirname + '/files/1.txt'
// 以后遇到路径拼接 建议使用path.join
// const abspath = path.join(__dirname, './files/1.txt')


// fs.readFile(abspath, 'utf8', (err, data) => {
//   if (err) return console.log(err.message)
//   console.log(data)
// })



// web相对路径  相对文件

// node相对路径 相对于运行环境

作业:读取txt中的数据后,改变格式,再将其写入另一个文件

const fs = require('fs')
const path = require('path')
const querystring = require('querystring')

fs.readFile(path.join('./1.txt'), 'utf8', (err, dataStr) => {
  if (err) return console.log(err.message)
  console.log(dataStr);
  let newArr = []
  let arr = dataStr.trim().split('\n')
  const obj = {}
  // console.log(arr)
  arr.forEach(item => {
    // console.log(JSON.parse('{"' + item.replace(/ /g, '\",\"').replace(/=/g, '\":\"') + '"}'))
    // newArr.push(JSON.parse('{"' + item.replace(/ /g, '\",\"').replace(/=/g, '\":\"') + '"}'))
    // console.log(querystring.parse(item, ' '))
    newArr.push(querystring.parse(item, ' '))
  })

  obj.message = newArr
  // 参数1 str 
  // 参数2 callback 可以设置为 null  
  // 参数3 设置数据的格式   
  // JSON.stringify
  fs.writeFile(path.join(__dirname, './2.json'), JSON.stringify(obj, null, '\t'), err => {
    if (err) return console.log(err.message)
    console.log('数据转换成功')
  })
})