【node.js从入门到精通】使用node.js写入读取文件内容,基础方法使用

简介: 【node.js从入门到精通】使用node.js写入读取文件内容,基础方法使用

前言


Node.js是一个基于Chrome V8引擎的JavaScript运行环境。



区分版本号


LTS为长期稳定版,推荐安装LTS版本的Node.js. Current为新特性尝鲜版,对热衷于尝试新特性的同学来说,推荐安装Current版本的Node.js


读取文件内容


使用readFile读取文件内容


读取失败是一个error对象


成功的话就是undefined


// 1.导入fs模块,操作文件
const fs = require('fs');
// 2.调用readFile() 方法 来读取文件
// 第一个参数是被读取文件的路径
// 第二个参数是编码格式
// 第三个参数是回调函数,拿到读取成功(dataStr)或者是失败的结果 (err)
fs.readFile('./file/01.text', 'utf8', function (err, dataStr) {
    console.log(err);// 打印失败的结果
    console.log("---------------------");
    console.log(dataStr);// 打印成功的结果
})


判断文件是否读取成功

const fs = require('fs');
fs.readFile('./file/01.txt', 'utf8', function (err, dataStr) {
    if (err) {
        return console.log('读取失败!' + err.message);
    }
    console.log('读取成功!' + dataStr);
})

成功



失败



使用writeFile写入文件内容

const fs = require('fs');
// 三个参数
// 参数1表示文件存放路径
// 参数2表示要写入文件的内容
// 参数3回调函数
fs.writeFile('./file/02.text', 'Aic大山鱼', function (err) {
    // 写入成功后err的值就是null,且在该文件夹下生成一个02文件 
    if (err) {
        return console.log('文件写入失败!' + err.message);
    }
    console.log('文件写入成功!');
})


整理数据


思维梳理


要求:把一个文件的内容整理起来,放到另一个文件名字和分数用冒号分隔开


1.导入需要的fs文件系统模块


2.使用fs.readFile0方法,读取素材目录下的report-card.txt文件


3.判断文件是否读取失败


4.文件读取成功后,处理成绩数据


5.将处理完成的成绩数据,调用fs.writeFile0 方法,写入到新文件report-card(1).txt中


// 导入fs模块
const fs = require('fs');
// 调用resdFile()方法 读取文件
fs.readFile('./file/report-card.txt', 'utf8', function (err, dataStr) {
    toString(dataStr);
    // 判断是否读取成功
    if (err) {
        return console.log('读取失败!' + err.message);
    }
    // 把获取到的成绩用逗号分隔开保存
    const arrOld = dataStr.split(',');
    // 循环分割后的每一个数组,进行字符串的替换操作
    const arrNew = [];
    // item代表要遍历那个数组里的每一项
    arrOld.forEach(item => {
        // 把=替换成:
        arrNew.push(item.replace('=', ':'))
    });
    // 把新数组的每一项进行合并得到新的字符串
    const newStr = arrNew.join('\n');
    // 使用writeFile()方法,把处理完毕的数据写入到新文件中
    fs.writeFile('./file/report-card(1).txt', newStr, function (err) {
        if (err) {
            return console.log('写入失败!' + err.message);
        }
        console.log('写入成功!');
    })
})


路径动态拼接处理问题


在使用fs模块操作文件时,如果提供的操作路径是以/或./开头的相对路径时,很容易出现路径动态拼接错误的问题。


原因:代码在运行的时候,会以执行node命令时所处的目录,动态拼接出被操作文件的完整路径。

// __dirname 表示当前文件所处的目录
const fs = require('fs');
// 使用方法
fs.readFile(__dirname + '/file/01.txt', 'utf8', function (err, dataStr) {
    if (err) {
        return console.log('读取失败!' + err.messages);
    }
    console.log('读取成功!' + dataStr);
})

path模块是Node.js官方提供的、用来处理路径的模块。它提供了一系列的方法和属性, 用来满足用户对路径的处理需求。


●path.join()方法,用来将多个路径片段拼接成一个完整的路径字符串


●path.basename()方法,用来从路径字符串中,将文件名解析出来


const path = require('path');
// ../会抵消一层路径
const pathStr = path.join('/a', '/v', '../', '/d', 'c');
console.log(pathStr);
const path = require('path');
const fs = require('fs');
fs.readFile(path.join(__dirname, +'/file/01.txt'), 'utf8', function (err, dataStr
) {
    if (err) {
        return console.log(err.message);
    }
    console.log(dataStr);
})

path.basename使用

const path = require('path');
const fpath = '/a/d/c/index.html'
const fullName = path.basename(fpath);
console.log(fullName);
// 移除后缀名
const nameWithoutExt = path.basename(fpath, '.html');
console.log(nameWithoutExt);

获取路径中扩展名文件

path.extname()方法

const path = require('paht');
const fpath = '/a/s/d/f/index.html'// 路径字符串
const fext = path.extname('fpath');
console.log(fext);// 输出.html
目录
相关文章
|
2月前
|
Web App开发 JavaScript 前端开发
Node.js 是一种基于 Chrome V8 引擎的后端开发技术,以其高效、灵活著称。本文将介绍 Node.js 的基础概念
Node.js 是一种基于 Chrome V8 引擎的后端开发技术,以其高效、灵活著称。本文将介绍 Node.js 的基础概念,包括事件驱动、单线程模型和模块系统;探讨其安装配置、核心模块使用、实战应用如搭建 Web 服务器、文件操作及实时通信;分析项目结构与开发流程,讨论其优势与挑战,并通过案例展示 Node.js 在实际项目中的应用,旨在帮助开发者更好地掌握这一强大工具。
61 1
|
2月前
|
监控 JavaScript Java
Node.js中内存泄漏的检测方法
检测内存泄漏需要综合运用多种方法,并结合实际的应用场景和代码特点进行分析。及时发现和解决内存泄漏问题,可以提高应用的稳定性和性能,避免潜在的风险和故障。同时,不断学习和掌握内存管理的知识,也是有效预防内存泄漏的重要途径。
193 52
|
17天前
|
JavaScript 前端开发 API
Next.js 实战 (六):如何实现文件本地上传
这篇文章介绍了在Next.js中如何实现文件上传到本地的方法。文章首先提到Next.js官方文档中没有提供文件上传的实例代码,因此开发者需要自行实现,通常有两种思路:使用Node.js原生上传或使用第三方插件如multer。接着,文章选择了使用Node.js原生上传的方式来讲解实现过程,包括如何通过哈希值命名文件、上传到指定目录以及如何分类文件夹。然后,文章展示了具体的实现步骤,包括编写代码来处理文件上传,并给出了代码示例。最后,文章通过一个效果演示说明了如何通过postman模拟上传文件,并展示了上传后的文件夹结构。
|
25天前
|
JavaScript 前端开发
【JavaScript】——JS基础入门常见操作(大量举例)
JS引入方式,JS基础语法,JS增删查改,JS函数,JS对象
|
1月前
|
存储 JavaScript NoSQL
Node.js新作《循序渐进Node.js企业级开发实践》简介
《循序渐进Node.js企业级开发实践》由清华大学出版社出版,基于Node.js 22.3.0编写,包含26个实战案例和43个上机练习,旨在帮助读者从基础到进阶全面掌握Node.js技术,适用于初学者、进阶开发者及全栈工程师。
61 9
|
2月前
|
存储 JavaScript 搜索推荐
Node框架的安装和配置方法
安装 Node 框架是进行 Node 开发的第一步,通过正确的安装和配置,可以为后续的开发工作提供良好的基础。在安装过程中,需要仔细阅读相关文档和提示,遇到问题及时解决,以确保安装顺利完成。
153 2
|
2月前
|
机器学习/深度学习 自然语言处理 前端开发
前端神经网络入门:Brain.js - 详细介绍和对比不同的实现 - CNN、RNN、DNN、FFNN -无需准备环境打开浏览器即可测试运行-支持WebGPU加速
本文介绍了如何使用 JavaScript 神经网络库 **Brain.js** 实现不同类型的神经网络,包括前馈神经网络(FFNN)、深度神经网络(DNN)和循环神经网络(RNN)。通过简单的示例和代码,帮助前端开发者快速入门并理解神经网络的基本概念。文章还对比了各类神经网络的特点和适用场景,并简要介绍了卷积神经网络(CNN)的替代方案。
324 1
|
2月前
|
JSON JavaScript 前端开发
使用JavaScript和Node.js构建简单的RESTful API
使用JavaScript和Node.js构建简单的RESTful API
|
Web App开发 JavaScript 前端开发
00-Node.js 简介
Node.js 是一个开源与跨平台的 JavaScript 运行时环境。 它是一个可用于几乎任何项目的流行工具!
170 0
00-Node.js 简介

热门文章

最新文章