学无先后,达者为师

网站首页 编程语言 正文

使用node读取文件和写入文件

作者:13少啊 更新时间: 2022-05-10 编程语言

在使用node之前,首先你得安装node,关于怎么安装可在官网自行进行安装。

一.怎么检查自己的node安装成功了

在终端输入node- v 进行检查。

可以看出我安装的node版本是14.17.0的版本。

二.什么是node?

当我们在浏览器写js的时候, 会操作到DOM和BOM这些都是内置的api,这些都是在浏览器上运行,现在常用的性能最好的解析引擎是V8引擎,这些都属于前端的环境。

总的来说:

解析:V8引擎
运行环境:浏览器
api:浏览器内置的api

node也属于一种运行行的环境,里面也有自己内置的api,它也是用V8引擎来解析的, 不过使用node是在终端进行运行的,

总结来说:

解析:V8引擎
运行环境:终端
api:node内置的api

浏览器大家都懂,那么就有人问了终端是什么?

 (1): 我对终端的理解就是和电脑交流的一种方式。 

 (2): 打开终端的方式 :cmd powershell

 (3):查找文件的案例

 

三.node的一些快捷方式

1. ⬆ 上箭头:上次输入的命令

2.tab:补全路径

3.cls:清除整个窗口的内容

4.cd:切换目录

5.esc:清除当前行的命令

更多的命令可自行查找

四.简单的读取文件

(1)读取的方式

node 文件的路径

(2)案例

如果是cmd终端

点击后:

 两种终端都可以,个人觉得第一种方便些。

 

五.通过fs来读取文件和写入文件

(1)导入fs这个模块

const fs=require('fs')

(2)调用

fs.readFile('./duqu.txt','utf8',function(err,datastr){
  console.log('读取成功后的'+err);
  console.log('读取成功后的'+datastr);
})

 (3)参数的介绍

1.要读取的文件路径

2.编码格式

3.读取完之后的结果

(4)运行之后的结果

 可以看出读取成功之后:

    err----------------null

   datastr------------返回的是文件里面的数据

读取失败之后两个参数的结果:

 

 可以看出读取失败之后 

err-----------报错的信息

datastr------underfined

(5)写入文件

需求:

1.将duqu这个里面的内容=替换成:  

2.换行进行显示

代码:

const fs=require('fs')
fs.readFile('./duqu.txt','utf8',function(err,datastr){
  // console.log('读取成功后的'+err);
  // console.log('读取成功后的'+datastr);
  // 如果为空的话说明读取成功 
  if (err) {
    // null转换为布尔值是false
    return  console.log('文件读取失败');
  }
 

  
//  1.先把成绩的数据,按照空格进行分割
const arrOld=datastr.split(',')
const arrNew=[]
arrOld.forEach(item=>{
  arrNew.push(item.replace('=',':'))
})
 const newStr=arrNew.join('\r\n')
 console.log(newStr);
 
//  5.调用fs.writeFile()方法,把处理完毕后的成绩
fs.writeFile('.//xieru.txt',newStr,function(err){
  // 读取失败 err的值也是为空  null转换为布尔值还是false
  if (err) {
    return console.log(err+'写入失败的');
  }
  console.log('成绩写入成功');
})
})



成功之后的结果:

 

六.补充if(变量)的含义

在JavaScrpit 可以直接将变量放在if后面的括号里,如:

 if (a){  

//...  

}  

以下情况会被认为返回false:

1."" 空的字符串 

2.为0的数字

3.为null的对象

4.为underfined的对象

5.布尔值false

反正为真

七.关于__dirname路径的问题

说明:

__dirname:表示当前文件所处的目录

 改造上面的代码:

const fs=require('fs')
fs.readFile( __dirname+ '/duqu.txt','utf8',function(err,datastr){
  // console.log('读取成功后的'+err);
  // console.log('读取成功后的'+datastr);
  // 如果为空的话说明读取成功 
  if (err) {
    // null转换为布尔值是false
    return  console.log('文件读取失败');
  }
 

  
//  1.先把成绩的数据,按照空格进行分割
const arrOld=datastr.split(',')
const arrNew=[]
arrOld.forEach(item=>{
  arrNew.push(item.replace('=',':'))
})
 const newStr=arrNew.join('\r\n')
 console.log(newStr);
 
//  5.调用fs.writeFile()方法,把处理完毕后的成绩
fs.writeFile(__dirname+ '/xieru.txt',newStr,function(err){
  // 读取失败 err的值也是为空  null转换为布尔值还是false
  if (err) {
    return console.log(err+'写入失败的');
  }
  console.log('成绩写入成功');
})
})


原文链接:https://blog.csdn.net/qq_59076775/article/details/123612420

栏目分类
最近更新